unity中Mathf.Lerp、Mathf.MoveTowards、Mathf.SmoothStep、Mathf.SmoothDamp的区别

1,Mathf.Lerp(float a, float b, float t) :线性插值,如果需要达到t值,需要一个逐渐变大的t值。
另外可以将a设置为当前结果,t设置为一个恒定值,这样会得到一个逐渐减速的值,最后结果会无限接近于b
返回结果按照如下方式计算:return (a + ((b - a) * Clamp01(t)));
2,Mathf.MoveTowards(float current, float target, float maxDelta) :线性变化
if (Abs((float) (target - current)) <= maxDelta)
{
return target;
}
return (current + (Sign(target - current) * maxDelta));
3,Mathf.SmoothStep(float from, float to, float t): 先加速后减速。
和Lerp一样的处理方式,只是变化曲线是一个先加速后减速的结果
4,Mathf.SmoothDamp(float current, float target, ref float currentVelocity, float smoothTime, float maxSpeed = Mathf.Infinity, float deltaTime = Time.deltaTime): 非匀减速曲线。
和Lerp的第二种使用方式类似,结果会无限接近于target
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值