Vector3.Lerp 插值的理解(线性),以及Lerp实现匀速运动

时间:2022-05-13 15:28:15

一、Vector3.Lerp插值的理解

public static Vector3 Lerp(Vector3 a, Vector3 b, float t);

其中a代表起点,b代表终点。 

下面是官方的例子是1秒动画位置从从from开始到to结束;

public class example:MonoBehaviour{

        public Transform start;

        public  Transform  end;

        void Update(){

                transform.position = Vector3.Lerp (start.position, end.position, Time.deltaTime);

        }

}


插值是数学上的一个概念,在这里用公式表示就是:from + (to - from) * t;这也就是Lerp的返回值(用这个公式分别算出x,y,z)

先看下面这个图: 

Vector3.Lerp 插值的理解(线性),以及Lerp实现匀速运动

其中a就是图中的from向量,b就是to向量。 

是夹在[0 ... 1]之间,当t = 0时,返回from,当t = 1时,返回。和对的平均数;