Unity #
Unity是一套具有完善体系与编辑器的跨平台游戏开发工具,也可以称之为游戏引擎。
游戏引擎是指一些编写好的可重复利用的代码与开发游戏所用的各功能编辑器。
Unity目前已超过50%的游戏引擎市场占有率。
Unity引擎优势 #
- 基于C#编程,拥有易上手、高安全性的特性。
- 独特的面向组件游戏开发思想让游戏开发更加简单易复用
- 拥有十分成熟的所见即所得开发编辑器
- 拥有良好生态圈,商城中包含大量成熟的功能脚本与资源
- 强大的跨平台特性,可以制作PC、主机、手机、AR、VR等多平台游戏
下载与安装 #
官网:https://unity.com/cn
下载Unity Hub,注册Unity账号
然后安装编辑器,推荐安装LTS长期支持版,这里选择2022.3.42f1c1
Mac环境安装 #
因为Visual Studio for Mac在2024年8月31日停用,所以我们将主要介绍Visual Stuiod Code的使用。
微软在2023年8月4日发布了Unity for Visual Stuio Code扩展,代替了以前的Debugger for Unity扩展。
- 以下安装和设置分为两个部分:
- Visual Stuiod Code中安装.Net SDK 和 Unity扩展(只需要设置一次)
- 在Unity项目中升级Visual Studio Editor(每个项目都需要)
.NET环境与VSCode插件安装 #
.NET环境安装:https://dotnet.microsoft.com/en-us/download
VSCode扩展安装:Unity
升级Visual Studio Editor #
将Unity项目的脚本编辑器设置为VSCode
在Unity中双击脚本,就可以打开Visual Studio Code,点击F5就可以构建项目了。
在第一次构建时,会有如下提示
- Enable debugging for this session:只针对本次Unity Editor有效,关闭Editor后失效。
- Enable debugging for all projects:将项目设置为debug模式,即使再打开Editor依然有效。
新建项目 #
编辑器安装完成之后,就可以开始创建项目了,点击(项目 - 新项目)
项目模板 #
项目模板是基于不同类型项目的共同最佳实践而提供预选的设置。这些设置针对Unity支持的所有平台上的2D和3D项目进行了优化。
项目模板的区别 #
- 从类型上来看,可以分为核心模板(Core)、示例模板(Sample)、学习模板(Learning),核心模板是空项目,是不带示例内容的,而示例模板则包括一些示例的场景,学习模板则是一个完整的项目。
- 从2D/3D角度 ,可以分为2D和3D项目。
- 渲染管线角度可以分为内置渲染管线,URP和HDRP三种。
| 渲染管线 | 适用的项目模板 |
|---|---|
| 内置渲染管线(Built-in Render Pipeline):默认渲染管线,适用于原型设计或者对画质要求不高的游戏,适用于低端设备。 | 2D(Built-in Render Pipeline)、3D(Built-in Render Pipeline)、2DMobile, 3D Mobile |
| 通用渲染管线(URP):对平台支持广泛,在性能上也有较好表现,适合移动端、桌面端、网页端游戏。 | Universal 2D、Universal 3D |
| 高清渲染管线(HDRP):适合大型3A游戏,对画面有高清渲染需求,适合桌面游戏和主机游戏项目。 | High Definition 3D |
项目结构 #
Assets:存放项目所有资源的主要文件夹,就是资源面板里的内容Library:临时文件和缓存文件夹,由Unity自动生成,包括资源索引、元数据等。一般情况下不需要修改或管理。若出现问题,可以尝试删除让Unity重新生成Logs:Unity编辑器和运行时的日志文件夹,由Unity自动生成,包含详细的运行日志以及错误信息,不建议删除Packages:Unity Package Manager(UPM)使用的文件夹,包含引用的各种包和资源。不建议删除ProjectSettings:包含项目的配置文件,例如输入设置、编辑器设置等,不建议删除Temp:临时文件夹,用于存放在编辑和运行时可能需要的临时数据,不建议删除UserSettings:存放用户特定设置的文件夹,如布局、偏好等。不建议删除,但如果没有特定的用户设置需要保留,可以删除该文件夹中的内容,Unity会在需要时重新生成.vsconfig:Visual Studio Code的配置文件,定义项目在VS Code中的设置和依赖项。如果不使用Visual Studio Code作为IDE,或者不需要特定的配置文件,可以删除这个文件Assembly-CSharp.csproj和Assembly-CSharp-Editor.csproj:这两个是Unity项目的C#项目文件,分别用于项目运行时代码和编辑器扩展的代码。不建议删除,如果不使用C#进行编码或者不需要在Visual Studio中打开项目,可以删除这两个文件.sln:Visual Studio生成的解决方案文件,用于整合Unity项目和C#项目。不建议删除,如果不使用Visual Studio或其他支持的IDE进行开发,可以删除该文件
编辑器窗口布局 #
Hierarchy:层级窗口Scene: 场景窗口,3D视图窗Game:游戏播放窗口Inspector:检查器窗口,属性窗口Project:项目窗口Console: 控制台窗口
编辑器操作 #
3D视图操作 #
按住鼠标中键:平移视图
按住右键:围绕视图中心点旋转
按住右键可以使用(W、S、D、A、Q、E)来移动视图
**注意:**Unity创建物体的时候默认会生成在视图的中心点,而不是世界原点,可以选中物体后使用快捷键F来将视图中心点移动到物体
物体操作 #
移动、旋转、缩放等功能,可以使用(Q、W、E、R)等快捷键,操作模式如下
Pivot:轴心 / Center 中心点Global:世界坐标系 / Local 局部坐标系
透视和正交 #
- 透视视图 Perspective,近大远小
- 正交视图 Orthographic,又称等距视图 Isometric
透视图下,物体近大远小。正交视图下,物体的显示与距离无关,可以通过右上角坐标下面的Persp(透视)和ISO(正交)进行切换
其他操作 #
复制:(Ctrl + D)
删除:(Delete、Ctrl + back)
聚焦:选中物体按(F)
基本概念 #
场景(Scene) #
一个场景可以理解为一个环境,由许多的物体搭建而成,Unity将这些物体称游戏对象GameObject。
游戏对象(GameObject) #
游戏对象是Unity中的基本实体,可以是图片、文本、三维物体等。是一种容器,可以挂载组件,游戏对象至少要有Mesh Filter(网格组件)和Mesh Renderer(渲染组件)才能渲染,即在编辑面板、游戏面板中看到。
组件(Component) #
在Unity中,游戏物体是不具备任何功能的,如果想要为其添加功能,那么就需要为它添加该功能的组件,而每一个组件其实就是一个引擎内部的组件脚本或是由自己编写的组件脚本。也就是说,一个游戏物体( Game Object)会包含多个组件( Component ),每一个组件又是一个组件脚本。
例如这个Cube物体,实际上就是(空物体 + Mesh Filter网格组件 + Mesh Renderer渲染组件 + Box Collider碰撞器组件)构成的。
脚本(Script) #
脚本也是一种组件,用来定义逻辑的代码文件,通常使用C#编写,并附加到游戏对象上以控制其行为。
预制体/预制件(Prefab) #
一个可重复使用的游戏对象模板,允许在项目中创建、配置和存储游戏对象的副本。直接从Hierarchy面板中拖动到资源面板即可形成预制体。
材质(Material) #
定义了游戏对象表面的外观和光照效果,常与纹理(Texture)结合使用,纹理就是附加到物体表面的贴图。
动画(Animation) #
用于控制游戏对象的运动和变换,包括动画和场景中的其他动画效果。
物理(Physics) #
涉及到碰撞、重力和其他物理行为,使游戏对象具有真实的物理特性。