要在 Unity 中制作一个对象移动平台。第一步需要在 Unity 中搭建一个小场景,可以按照图简单搭建一个,注意需要创建两个位置为 PointA 和 PointB 的空对象来移动平台。
例如…

下图为层次结构。

而且在列表中须创建一个名为移动平台的新脚本并将其添加到移动平台对象中。
在下面 “我是脚本” 中,有一些 vector 3 变量来存储初始 a 位置、b 位置和 currentTarget。
还有一些与运动相关的变量,比如速度。
在 start 函数中,须用 A 点和 B 点游戏对象的位置来初始化 A 点和 B 点,但是这里不使用这些对象的位置进行计算,因为它们随着平台移动。
在 Update 方法中,检查平台是否到达其中一个点以移动到另一个点,并使用函数 MoveToward 通过将函数的结果分配给平台位置来将平台移动到当前目标。
例如…
// 位置
private Vector3 _pointA,_point,currentTarget;
// 一般变量
[SerializeField]
private float _speed = 5.0f;
private float step;
// 在第一帧更新之前调用开始
void Start()
{
_pointA = gameObject.transform.Find("PointA").transform.position;
_pointB = gameObject.transform.Find("pointB").transform.position;
currentTarget = _pointA;
}
// 每帧调用一次更新
void update()
{
if (transform.position ==_pointA )
{
currentTarget = _pointB;
}
if (transform.position ==_pointB)
{
currentTarget = _pointA;
}
step = Time.deltaTime * _speed;
transform.position = Vector3.MoveTowards(transform.position,currentTarget,step);
}
此时在 Unity 中就制作完成了一个对象移动平台了。
