当前位置: 首页 > news >正文

Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境

实际上本文不看也罢,因为整个过程除了网速之外基本没啥坑。不过装完可能有一些配置,所以如果不知道的话可以参考本文。


@TOC

安装

我们共需要安装两款应用:

  • Visual Studio 2019 及 Unity 编辑器组件
  • Unity Hub

这两款应用安装不分先后,不过建议全部都安装完后再启动,避免单独启动无法运行使用的问题。

安装 Visual Studio 2019 的 Unity 编辑器组件。

Visual Studio 2019 的安装包自带 Unity 编辑器的安装入口。在你的开始菜单中搜索并打开“Visual Studio Installer”。如果你没有安装 Visual Studio 的话,那么还是建议去下载安装一下的。

Visual Studio Installer

启动完 Visual Studio Installer 之后,选择“修改”:

修改 Visual Studio Installer 的组件

在“单个组件”里面勾选两个:

  • Unity 64 位编辑器
  • Visual Studio Tools for Unity

勾选 Unity 组件

点击右下角的“修改”后就等待。(可能部分运营商的速度会过慢,这时你可能需要考虑梯子。)

安装 Unity Hub

下载安装地址:

  • Download - Unity

获得授权

如果没有 Unity 的授权,那么你将无法使用 Unity 编辑器,而 Unity 的授权在 Unity Hub 的应用中才能进行(这也是为什么一定要下一个 Unity Hub 的原因)。

启动 Unity Hub。如果你没有许可证的话,那么打开 Unity Hub 的第一个界面就是 Unity Hub 的许可证的授权界面。如果没有打开这个界面,那么点击右上角的设置->许可证管理可以进来。

激活许可证

点击“激活新许可证”,然后按照你自己的需要选择许可证即可。我出于个人学习 Unity 的需要安装的 Unity,所以选择了个人授权。个人授权免费,不过有效期只有一天,过期需要手工再操作一次。

配置 Visual Studio 集成

使用 Visual Studio 解决方案

在 Unity Hub 中新建一个项目,输入名称选择路径,你就可以开始使用 Unity 来制作你的程序了。

新建项目

新建或打开 Unity 的项目后,会启动 Visual Studio 2019 安装过程中安装的那个 Unity 编辑器。

选择“Edit->Preference...”打开 Unity 的设置。

Preference

在设置中,打开 External Tools,然后在 External ScriptEditor 中选择“Browse...”,找到 Visual Studio 2019 的主程序确定,这时,这里就会变成“Visual Studio 2019”。下面是否勾选 Generate all .csproj files 的区别是生成的 Visual Studio 解决方案中是否包含其他所有的项目(后面会介绍)。

Visual Studio 一般在这种地方:

  • C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE
  • C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE
  • C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE

设置外部工具

设置完成之后,点击“打开 C# 项目”可以在 Visual Studio 中打开此项目的解决方案,你就可以在里面编写 C# 脚本了。

后话,其实你什么都不配也依然能使用 Visual Studio 完成开发,不过配完后你将获得这些好处:

  1. 获得完整的 Visual Studio 项目,可以用 C#/.NET 的语法分析,可以管理项目(否则你只能以单纯的 C# 单个文件编辑代码);
  2. 可以直接在 Visual Studio 中调试 Unity 程序,获得比较完整的 Visual Studio 的调试体验。

如果你在前面勾选了“生成所有的 .csproj 文件”,那么在 Visual Studio 的解决方案中将可以看到所有的 Unity 辅助项目可供编辑。否则只有 Assembly-CSharp 一个项目。

所有的 Unity 项目

在 Visual Studio 中调试 Unity 程序

正常你可以直接在项目原本的“启动”或“调试”按钮处看到“附加到 Unity”按钮,点击即可调试 Unity 程序。

附加到 Unity

当然,Unity 编辑器这边也要运行起来才可以在 Visual Studio 里面进入断点:

需要运行 Unity

如果你没有找到“附加到 Unity”按钮,那么可以在 Visual Studio 的“调试”菜单中找到“附加 Unity 调试程序”。点击后可以自动查找当前正在运行的 Unity 编辑器,选择你希望调试的那一个即可开始调试。

附加 Unity 调试程序

安装其他模块(语言/编译平台)

实际上,按照以上步骤全部完成的话,编译和调试 Unity 项目已经没有问题了。如果你是出于学习目的安装的话,本文的操作到此结束。

至此我们的 Unity 项目并不能发布,因为我们没有安装过任何目标平台的编译环境。

请前往 Unity 的更新页面:https://unity3d.com/get-unity/update

因为我们已经安装了 Unity Hub,所以可以选择:

I already have Unity Hub
Install version from Unity Hub

这时会启动 Unity Hub 然后进入更新页面。如果打开了 Unity Hub 但没有进入更新页面,请去任务栏通知区域右键退出 Unity Hub,重新点击上面的那个 Install version from Unity Hub 按钮。于是可以选择安装哪些组件。

随后点击右下角的“安装”以安装新版本并包含需要的编译组件。

当然,如果你已经安装过新版本,那么也可以通过“添加组件”的方式来安装目标平台的编译环境。

添加模块

可添加的模块

完成

至此,Unity 的安装和基本配置已全部完成。


我的博客会首发于 https://blog.walterlv.com/,而 CSDN 会从其中精选发布,但是一旦发布了就很少更新。

如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

知识共享许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

相关文章:

  • 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用
  • 将 Windows Terminal 作为外部工具集成到其他工具 程序 代码中
  • Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • 如何在终端和 PowerShell 中将一个命令自动重复执行多次
  • WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。
  • 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup?
  • Windows Linux 系统中获取端口被哪个应用程序占用
  • 设置用户无需密码自动登录到 Windows 系统
  • 最简单的代码,让 WPF 支持响应式布局
  • 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小
  • 如何给 GitHub Pages 配置多个域名?
  • 《剑指offer》分解让复杂问题更简单
  • Akka系列(七):Actor持久化之Akka persistence
  • AngularJS指令开发(1)——参数详解
  • October CMS - 快速入门 9 Images And Galleries
  • ubuntu 下nginx安装 并支持https协议
  • ucore操作系统实验笔记 - 重新理解中断
  • 闭包--闭包之tab栏切换(四)
  • 工作中总结前端开发流程--vue项目
  • 入手阿里云新服务器的部署NODE
  • 为视图添加丝滑的水波纹
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • ​HTTP与HTTPS:网络通信的安全卫士
  • #预处理和函数的对比以及条件编译
  • (14)Hive调优——合并小文件
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (十八)三元表达式和列表解析
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转载)Linux网络编程入门
  • .jks文件(JAVA KeyStore)
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET Core 项目指定SDK版本
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [].shift.call( arguments ) 和 [].slice.call( arguments )
  • []指针
  • [autojs]autojs开关按钮的简单使用
  • [Bada开发]初步入口函数介绍
  • [BUAA软工]第一次博客作业---阅读《构建之法》
  • [Deep Learning] 神经网络基础
  • [flume$2]记录一个写自定义Flume拦截器遇到的错误
  • [moka同学笔记]yii表单dropdownlist样式
  • [Oh My C++ Diary]函数重载
  • [Python]面向对象基础
  • [RK3566-Android11] 关于 a2dpsink -蓝牙支持接收播放/无PIN码连接
  • [SUCTF 2019]CheckIn1
  • [Web开发] IE8中如何防御网站被Clickjacking攻击
  • [WinDBG 技巧] 列举所有Handle(句柄)以及查看Handle 信息
  • [笔记] BAD PASSWORD ,linux 修改密码历程
  • [导入]常用Response对象的使用详解
  • [动态规划] (五) 路径问题: LeetCode 62.不同路径