线性插值
Mathf.Lerp(start,end,t)start、end是一个值。
Vector3.Lerp(start,end,t) start、end是三个值。x,y,z
线性插值应用
第一种写法:
首先创建三个物体A、B、target。目标是让A、B都随着target的移动而移动。
我们可以利用Vector3.Lerp函数来完成。以A为先快后慢方法。
先得到三个物体的Transform.
再使用Lerp函数:
Lerp的返回值是A的位置(position)。一开始A与target相距很远,因此A.position = A.position+
(target.positon-A.position)*Time.deltaTime 会和一开始的位置改变很大。速度很快。
当A十分接近target时,改变很小,速度很慢。
第二种:
我们想让一个物体匀速的移动到另一个物体处。那么怎么办呢?我们可以将二者的距离进行均分,当t>=1时,完成移动。
因为要匀速,所以不能使(end-start)进行改变,因此start当为一定值,用t的改变来改变B的position.
这样有一个缺点,那就是当time>1时,改变Target的位置,B的位置会瞬移到目标位置。
这样写的话,target动起来 B也是匀速运动的。
球形插值
线性和球形插值的区别: