Unity C# 代码实现物体在规定时间内移动 - 从起点到终点
可以使用以下 C# 脚本在 Unity 中实现物体在规定时间内由一点移动到另一点:
using UnityEngine;
public class MoveObject : MonoBehaviour
{
public Transform startPoint; // 起始点
public Transform endPoint; // 终止点
public float duration = 1.0f; // 移动时间
private float timer = 0.0f; // 计时器
private void Update()
{
timer += Time.deltaTime; // 增加计时器的时间
if (timer < duration) // 如果还没到达终点
{
float t = timer / duration; // 计算移动比例
transform.position = Vector3.Lerp(startPoint.position, endPoint.position, t); // 插值移动
}
else // 如果已经到达终点
{
transform.position = endPoint.position; // 设置到终点位置
}
}
}
将该脚本挂载到需要移动的物体上,设置起始点和终止点的位置,以及移动时间,即可实现物体在规定时间内由一点移动到另一点的效果。
解释:
- startPoint 和 endPoint:分别代表物体移动的起始点和终止点。
- duration:代表物体完成移动所需的时间。
- timer:计时器,记录当前已经过去了多少时间。
- Lerp:线性插值函数,用于根据移动比例计算物体在当前时间点的位置。
步骤:
- 创建一个新的 C# 脚本,并将其命名为
MoveObject。 - 将脚本挂载到需要移动的物体上。
- 在场景中创建两个空物体,分别作为起始点和终止点。
- 将脚本中的
startPoint和endPoint变量分别拖动到这两个空物体上。 - 设置
duration变量的值,代表移动所需的时间。 - 运行游戏,观察物体在指定时间内从起点移动到终点的效果。
提示:
- 可以通过调整
duration变量的值来控制移动速度。 - 可以使用其他动画曲线函数,例如
SmoothStep或Ease,来创建更复杂的移动轨迹。 - 可以将此脚本扩展为支持多个移动路径,实现更复杂的移动效果。
原文地址: https://www.cveoy.top/t/topic/owCs 著作权归作者所有。请勿转载和采集!