找回密码
 立即注册
查看: 302|回复: 0

Unity进阶移动方法

[复制链接]
发表于 2023-3-24 10:10 | 显示全部楼层 |阅读模式
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 中,有多种方式可以实现物体移动,其中 MoveTowardsSmoothDamp Lerp 是三种常用的高级移动方式。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-24 05:34 , Processed in 0.134925 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表