[Unity3D] Vector3.Lerp(x, y, Time.deltaTime) 是什么意思?
最近看到一些代碼,發(fā)現里面會這樣寫?Vector3.Lerp(x, y, Time.deltaTime)
,deltaTime 是此時距離上一次調用的時間,它并不是[0, 1],所以這個插值是什么意思呢?
其實,這是一個減速的線性插值,我舉一個非常簡單的例子。比如要讓當前物體的位置從0,移動到100。
假設?Time.deltaTime
?是 0.2,那么第一次調用后 0 -> 100 進度:0.2,差值為20,targetPosition = 20
下一次調用時,則是 20 -> 100,進度 0.2,差值是?(100?20)?0.2=16,所以?targetPosition = 20 + 16 = 36
以此類推,可以看出,由于 deltaTime 是一個可以理解為恒定的數值,而起始數據和目標數值會隨著迭代,起始數值不斷靠近目標數值,這樣每次步進的差值就會越來越小。
希望以上內容對你有幫助。
標簽: