国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

unity3d問題集 <2> 對(duì)Vector3.Lerp 插值的理解

2019-11-09 14:17:18
字體:
供稿:網(wǎng)友

有時(shí),我們?cè)谧?a >游戲時(shí)會(huì)發(fā)現(xiàn)有些跟隨動(dòng)作不夠圓滑或者需要一個(gè)緩沖的效果,這時(shí),一般會(huì)考慮到插值。所以對(duì)插值的理解是必需的。(比如攝像機(jī)跟隨主角)

插值是數(shù)學(xué)上的一個(gè)概念,在這里用公式表示就是:from + (to - from) * t;這也就是Lerp的返回值(用這個(gè)公式分別算出x,y,z)。

static function Lerp (from : Vector3, to : Vector3, t : float) : Vector3 

from 是起始的位置,to是目標(biāo)位置,按照數(shù)字t在from到to之間插值。這句話比較難理解,下面舉個(gè)例子。

       

這和我們用公式算出來的如出一轍。現(xiàn)在我們?cè)倏匆粋€(gè)具體的例子

//在1秒時(shí)間動(dòng)畫位置移動(dòng)從from開始到to結(jié)束。(這是官方的例子)

位置移動(dòng)從start開始到end結(jié)束,這好理解,但是為什么是1秒呢?

Time.time是從0開始隨時(shí)間增加的。

例1的t是一個(gè)固定的值,返回一個(gè)固定的向量。此時(shí)t是變量,在不斷增加。那么:

當(dāng)Time.time = 0時(shí)--->transform.position = start.position,位置沒有變化;

當(dāng)Time.time從0趨向于1時(shí)--->transform.position 不斷接近start.position,該腳本是掛在start物體上的,所以start會(huì)不斷靠近end。

那么問題來了,當(dāng)Time.time>1的時(shí)候,會(huì)怎么樣呢?額(⊙o⊙)…我們說不會(huì)。

由上面的公式from + (to - from) * t可知,當(dāng)t=1時(shí),to - from = 0,此時(shí)t就無效了。

例1是從靜態(tài)角度看,例2是從動(dòng)態(tài)角度看的(兩個(gè)變量,一個(gè)是時(shí)間在變化,一個(gè)是位置在變化)。

想一想例2,如果不是Time.time,而是0.5,會(huì)怎么樣?(只看一個(gè)變量)

由圖易知:A物體會(huì)不斷以0.5的比例無限接近于B。

如果上面都理解了,那么看官方的第二個(gè)例子就沒什么問題了,試一試吧!

//像彈簧一樣跟隨目標(biāo)物體

 蠻牛首發(fā),轉(zhuǎn)載請(qǐng)注明出處【Sugar丿miss丶QAQ】http://www.unitymanual.com/blog-42778.html

 

vector 插值
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 横峰县| 璧山县| 盐源县| 河间市| 民乐县| 清水县| 青川县| 慈溪市| 昭平县| 清新县| 明水县| 秦安县| 隆昌县| 大姚县| 望城县| 西峡县| 东明县| 万州区| 莱阳市| 嘉峪关市| 黄平县| 芮城县| 祁阳县| 安塞县| 河东区| 定陶县| 隆昌县| 封丘县| 龙游县| 东辽县| 福建省| 海安县| 抚顺市| 望奎县| 刚察县| 乌拉特后旗| 安龙县| 张掖市| 永善县| 芦溪县| 云南省|