Unity3D入门 第肆章 :简单的物体运动

2015年03月20日 17:11 0 点赞 0 评论 更新于 2025-11-21 17:55

在这一章节中,我们将深入了解 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 函数

Translatetransform 的一个函数,其主要作用是移动物体。该函数接受一个三维向量(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 的作用是将物体的移动速度与帧率解耦,保证物体以稳定的速度移动。

代码下载

你可以通过以下链接下载本案例的代码:点击下载

作者信息

menghao

menghao

共发布了 3994 篇文章