1. 程式人生 > >Vector3.Lerp 插值的理解(線性),以及Lerp實現勻速運動

Vector3.Lerp 插值的理解(線性),以及Lerp實現勻速運動

一、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)

先看下面這個圖: 

這裡寫圖片描述

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

是夾在[0 ... 1]之間,當t = 0時,返回from,當t = 1時,返回。和對的平均數;