咱們知道Mathf.Lerp函數的是用在兩個值之間進行插值,用於平滑過渡。c#
var 插值結果 = Mathf.Lerp(from,to,rate) //rate是0~1的值
函數
Unity沒有提供一個直接的接口,用於在X秒內進行插值,那麼如何實如今X秒內進行插值呢?code
示例代碼:接口
//總時間 var duration = 3.0f; //開始時間 float time_start ; bool end = false; bool start = false; //每幀調用 void OnGUI(){ if(GUI.Button(new Rect(100,10,100,40))){ end = false; start = true; time_start= Time.time; } if(start&&!end){ var rate = Mathf.Clamp01((Time.time-time_start)/duration) //在3秒內從0~1 var value = Mathf.Lerp(0,1,rate); if(value>=1){ end = true Debug.Log("走完了") } } }