Lerp在X秒內插值

在X秒內插值

咱們知道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("走完了")
        }
    }
}
相關文章
相關標籤/搜索