Unity3D入门 第肆章 :简单的物体运动
在这一章节中,我们将深入了解 Translate 函数的使用方法,通过实际案例来实现物体的简单运动。
场景搭建
首先,我们需要搭建一个简单的场景。具体操作是创建一个立方体,并添加一个点光源。这样的场景可以让我们更直观地观察物体的运动效果。
实现立方体沿 X 轴移动
我们的目标是让场景中的立方体沿着 X 轴移动。接下来,我们将通过编写脚本代码来实现这一功能。
创建脚本
在 Project 面板中,我们新建一个 JavaScript(js)脚本。具体操作路径为:Create -> Javascript。
编写代码
打开新建的 js 脚本,键入以下代码:
function Update () {
transform.Translate(Vector3(1, 0, 0));
}
绑定脚本
将编写好的 js 文件拖到 Hierarchy 面板的立方体上,完成脚本与立方体的绑定。
运行结果
运行程序后,你会发现立方体“嗖”的一声不见了。这是因为在上述代码中,立方体每帧都会沿着 X 轴正方向移动 1 个单位,由于帧率较高,立方体在短时间内就会移出我们的视野范围。
调整移动速度
为了让立方体移动得慢一些,我们需要对代码进行修改。修改后的代码如下:
function Update () {
transform.Translate(Vector3(1, 0, 0) * Time.deltaTime);
}
再次运行程序,此时你会看到立方体开始慢慢地移动。
代码分解
接下来,我们对代码进行详细的分解,以便更好地理解每一部分的作用。
Update() 函数
Update() 函数是 Unity 中的一个重要函数,它会在每一帧被调用。在我们的代码中,物体的移动操作会在每一帧都执行一次。相信大家在之前的学习中已经对这个函数有了一定的了解。
transform 属性
在 Unity 场景中,每一个对象都有一个 transform 属性,它用于储存和控制物体的位置、旋转和缩放信息。通过 transform,我们可以方便地对物体进行各种变换操作。
Translate 函数
Translate 是 transform 的一个函数,其主要作用是移动物体。该函数接受一个三维向量(Vector3)作为参数,用于指定物体移动的方向和距离。实际上,Translate 函数还有第二个参数,用于指定是按照自身坐标轴移动还是按照世界坐标轴移动,在本案例中我们暂不讨论这个参数。
Vector3 类
Vector3 类用于表示 3D 的向量和点。它有 3 个参数,分别代表向量在 x、y、z 轴上的分量。在我们的代码中,Vector3(1, 0, 0) 表示一个沿 X 轴正方向的单位向量。
transform.Translate(Vector3(1, 0, 0)) 代码含义
这句代码的意思是,让被绑定的物体(即场景中的立方体)沿着 X 轴正方向移动 1 个单位。
Time.deltaTime 属性
Time.deltaTime 是一个时间增量,它表示上一帧到当前帧所经过的时间。在游戏开发中,帧率可能会有所波动,为了保证物体的移动速度不受帧率的影响,我们通常会使用 Time.deltaTime 来进行计算。在这个程序中,Time.deltaTime 的值大约是 0.016 秒。原本物体每帧移动 1 个单位,现在乘以 Time.deltaTime 后,物体的移动速度就会减慢。也就是说,Time.deltaTime 的作用是将物体的移动速度与帧率解耦,保证物体以稳定的速度移动。
代码下载
你可以通过以下链接下载本案例的代码:点击下载