MapleKitte 发表于 2023-3-24 10:10

Unity进阶移动方法

MoveTowards

MoveTowards是Unity中一个基本的线性插值函数,可以在两个向量之间进行插值计算。它可以用来实现物体在两点之间的匀速移动。
使用方法如下:
transform.position = Vector3.MoveTowards(transform.position, target.position, speed * Time.deltaTime);
其中,第一个参数表示当前物体的位置,第二个参数表示目标位置的向量,第三个参数表示物体移动的速度。
SmoothDamp

SmoothDamp是Unity中一种平滑过渡的函数,可以用于平滑地移动物体。
Vector3 smoothDampVelocity = Vector3.zero;
transform.position = Vector3.SmoothDamp(transform.position, target.position, ref smoothDampVelocity, smoothTime);其中,第一个参数表示当前物体的位置,第二个参数表示目标位置的向量,第三个参数是一个引用类型的变量,用于存储物体移动的速度,第四个参数是平滑过渡的时间。
Lerp

Lerp是Unity中一种基本的线性插值函数,可以用于物体之间的线性插值计算。它可以在两个向量之间进行插值计算。
下面是匀速插值的示例:
public float fixedTime = 0.0f;

private float target = 5.0f;
private float fixedDeltaTime = 0.0f;

private void FixedUpdate()
{
    fixedTime = Mathf.Lerp(fixedTime, target, Time.fixedDeltaTime / (target - fixedDeltaTime));
    fixedDeltaTime += Time.fixedDeltaTime;
    Debug.Log(string.Format("currentTime:{0}", fixedTime));
}
总结

在 Unity 中,有多种方式可以实现物体移动,其中 MoveTowards、SmoothDamp 和 Lerp 是三种常用的高级移动方式。
页: [1]
查看完整版本: Unity进阶移动方法