一、前言
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情。
Unity3D
是一款优秀的3D
游戏引擎,可以开发各种各样的游戏,比如多人在线角色角色扮演游戏、赛车游戏、动作竞技游戏以及射击游戏等等。在移动平台,Unity3D
的地位更是举足轻重,目前大多数手机游戏都是Unity3D
开发的。让我们一起踏上学习Unity3D
的征途吧!本文将介绍相关软件下载和安装以及Unity
的基础入门知识,带大家领略3D
世界的美丽与神奇!
二、下载安装
2.1 Visual Studio 2022
移步至微软官网下载 Visual Studio Community 2022
(社区版本)
勾选相关 Unity
开发的组件应用。如果忘记勾选或者需要从事其他方向开发,可以在 Visual Studio Installer
中再次勾选安装,添加环境和组件,记得别放在 C 盘,不然容易 “炸”,盘大的当我没说哈【doge】
Visual Studio Installer
中还支持卸载和修复功能:
2.2 Unity Hub
如果你完成了上一步的安装,那么你的桌面上一定有一个 Unity Hub
软件图标。你一定有所疑问,我要用的开发工具是 Unity3D
,为何要下载这个呢?
Unity Hub
是一个致力于简化工作流的桌面端应用程序,是一个集社区、项目管理、学习资源、安装于一体的工作平台- 它提供了一个用于管理
Unity
项目、简化下载、查找,卸载以及安装管理多个Unity
版本的工具
👆 可能是你打开 Hub
后的安装版本界面,如果是建议你升级到最新版本:
注意: 下载 Unity
之前请先注册 Unity ID
,相当于 Unity
开发者账户,方便项目协同和同步。同时,也为了获取免费的个人使用许可证。
2.2.1 Unity ID 注册
- 点击右上角用户图标,开始创建
Unity ID
- 根据系统提示,完成账号创建
2.2.2 获取免费的个人版许可证
- 使用刚创建好的
Unity ID
登录到Unity Hub
中,点击用户头像旁的下拉按钮打开,进入管理许可证设置界面
- 选择添加许可证,同意协议后即可获得免费的个人许可证
注意到期时间,届时重新获取就好了
2.3 Unity 2019.4.36f1c1 (64-bit)
完成以上安装后终于可以开始安装
Unity
了,吗?
别急还有几项设置你需要更改:
2.3.1 打开偏好设置
2.3.2 更改新建项目存放位置
2.3.3 更改安装位置和下载位置
建议不要装到 C 盘
2.3.4 开始安装
- 可以直接通过
Unity Hub
选择所需版本进行安装
- 如果没有所需的版本可以从官网下载安装
初学时推荐 2019 长期支持版本 Unity官方下载_Unity最新版_从Unity Hub下载安装 | Unity中国官网,后续可根据个人学习和开发需要再安装其他指定版本。
- 选择从
Hub
下载,随后就会打开Unity Hub
进行下载,等待安装完成即可
三、创建你的第一个项目
通过在 Unity Hub
中“项目 -> 新项目”来创建你的第一 Unity 3D
项目:
填写好新项目的项目名称(Project Name
)和路径(Location
)后记得取消版本管理和托管到云端,否则可能会遇到网络不可抗力因素,导致打开项目等待时间过长。
点击创建项目(Create project
)按钮后进入 Unity 3D
的主界面。
3.1 初识主界面
主界面由场景面板、属性面板、层次面板和项目面板这四个面板组成:
- 场景面板:
Unity 3D
中最常用的部分,场景中所有的模型、光源、摄像机、材质、音效等都显示在此面板上。在面板中可以编辑游戏对象,包括旋转、移动和缩放等。 - 属性面板:显示当前选择对象的各种属性,包括对象的名称、标签、位置坐标、旋转角度、缩放和挂载组件等。
- 层次面板:显示场景中的所有物体。
- 项目面板:列出所有游戏资源。
3.2 四点循环移动
工欲善其事,必先利其器。让我们试着完成一个正方体四点循环移动的游戏,把它当作安装完软件后的一个小小测试吧!
3.2.1 完成步骤
完成这个游戏,有三个步骤:
- 在场景中创建一个
Plane
平面和Cube
立方体。 - 编写可以使立方体循环四点移动的脚本代码。
- 测试并开始游戏。
3.2.2 创建物体
先后点击菜单栏中的 GameObject -> 3D Object -> Plane 和 GameObject -> 3D Object -> Cube 来创建平面和立方体。完成后,层次面板和场景面板都会显示刚刚创建的物体。
3.2.3 物体调整
功能从左到右依次为选择(Q
)、调整位置(W
)、旋转(E
)、缩放(R
)和矩形工具(T
)。
通过菜单栏的这几个按钮调整平面的缩放大小和立方体的位置、旋转和尺寸。
3.2.4 添加材质
以上是添加材质的两种方法,效果:
3.2.5 视图对齐
如果快捷键无效,注意可能是按键冲突了,请通过点击按钮的形式完成视图对齐:
3.2.6 编写游戏脚本
在项目面板中,找到 Assets
目录并在该目录下建立 Scripts
目录,然后在新建的目录中选择 Create -> C# Script,创建一个名为 MoveLogic
的脚本。
之后双击它,便可以在 VS2022
中编写程序了。
自动生成的代码介绍:
- 它继承自
MonoBehaviour
类,只有继承自MonoBehaviour
类的脚本才能够被附加到游戏物体上,成为组件。 - 它自带
Start()
方法,当物体被创建时调用。 - 它自带
Update()
方法,游戏过程中,Update()
方法会被重复调用,每帧调用一次。
this.transform.Translate(0, 0, 1.0f); // this 指代的是当前挂载脚本组件的游戏物体对象
复制代码
Transform
是物体的变换组件,它决定了物体在场景中的位置、旋转和缩放。
其中 transform.Translate(x, y, z)
可以使物体沿着某一方向移动一定的距离。
要让当前物体每一帧向正前方移动 1 米的距离,可以添加代码 this.transform.Translate(0, 0, 1.0f);
。
你会发现,物体不是匀速运动,速度非常快,那有什么方法可以解决这个问题吗?
答案是有的,只需在该方向的运动速度上乘上一个从上一帧到当前帧的秒间隔,就是这一帧运动的距离了。
// Time.deltaTime 从上一帧到当前帧的秒间隔
this.transform.Translate(0, 0, 1 * Time.deltaTime);
复制代码
Z
方向位置每一帧都在累加变化。
了解了这些基础语法和概念之后,让我们逐一来实现立方体在平面上的四点循环移动吧!
定义成员变量,来控制立方体的转弯循环移动:
float xSpeed = 0;
float ySpeed = 0;
float zSpeed = 1;
复制代码
立方体初始时保证立方体向正前方移动。
// Update is called once per frame
void Update()
{
// 每次调用更新方法,物体开始移动
this.transform.Translate(xSpeed * Time.deltaTime, ySpeed, zSpeed * Time.deltaTime);
if (this.transform.position.z > 10)
{
// 向右移动(X 轴正方向移动)
xSpeed = 1;
zSpeed = 0;
}
if (this.transform.position.x > 10)
{
// 向下移动(Z 轴负方向移动)
xSpeed = 0;
zSpeed = -1;
}
if (this.transform.position.z < 0)
{
// 向左移动(X 轴负方向移动)
xSpeed = -1;
zSpeed = 0;
}
if (this.transform.position.x < 0)
{
// 向前移动(Z 轴正方向移动)
xSpeed = 0;
zSpeed = 1;
// 重置为初始位置坐标,开始下一圈循环移动
this.transform.position = new Vector3(0, 1, 1);
}
}
复制代码
当立方体移动到一定的位置,需要往左右去移动,Z
方向速度置为 0 ,反之往前后方向移动,X
方向速度置为 0 。
注意 X
、Z
轴有正方向和负方向之分。
3.2.7 游戏效果展示
四、结尾
撰文不易,欢迎大家点赞、评论,你的关注、点赞是我坚持的不懈动力,感谢大家能够看到这里!Peace & Love。
五、Unity 学习资源
Unity
官方手册是最权威规范的学习资源,提供了各个功能介绍,并且在脚本API
中提供了所有脚本语言中功能的使用方法,并对不同版本进行了区分介绍,目前已有 中文文档 供大家参考学习。