欢迎光临散文网 会员登陆 & 注册

[Unity3D] Vector3.Lerp(x, y, Time.deltaTime) 是什么意思?

2021-03-09 13:05 作者:krosshj  | 我要投稿

最近看到一些代码,发现里面会这样写 Vector3.Lerp(x, y, Time.deltaTime),deltaTime 是此时距离上一次调用的时间,它并不是[0, 1],所以这个插值是什么意思呢?

其实,这是一个减速的线性插值,我举一个非常简单的例子。比如要让当前物体的位置从0,移动到100。

假设 Time.deltaTime 是 0.2,那么第一次调用后 0 -> 100 进度:0.2,差值为20,targetPosition = 20

下一次调用时,则是 20 -> 100,进度 0.2,差值是 (100−20)∗0.2=16,所以 targetPosition = 20 + 16 = 36

以此类推,可以看出,由于 deltaTime 是一个可以理解为恒定的数值,而起始数据和目标数值会随着迭代,起始数值不断靠近目标数值,这样每次步进的差值就会越来越小。

希望以上内容对你有帮助。


[Unity3D] Vector3.Lerp(x, y, Time.deltaTime) 是什么意思?的评论 (共 条)

分享到微博请遵守国家法律