PICO 4 開(kāi)發(fā)初嘗試2(實(shí)現(xiàn)物體組合運(yùn)動(dòng))
在上一章中明確了組合的邏輯是采用固定關(guān)節(jié)實(shí)現(xiàn)的,那么現(xiàn)在將整個(gè)組合的過(guò)程劃分為3個(gè)階段。
判斷階段:這個(gè)階段主要負(fù)責(zé)檢測(cè)是否需要組合
定位階段:當(dāng)需要組合時(shí)組合物應(yīng)當(dāng)以什么位置什么角度進(jìn)行定位
組合階段:當(dāng)定位完成,生成固定關(guān)節(jié)將兩個(gè)物品組合起來(lái)

判斷是否組合使用的是觸發(fā)器與碰撞體之間的檢測(cè),首先為一個(gè)方塊添加一個(gè)觸發(fā)器,當(dāng)觸發(fā)器與碰撞體發(fā)生碰撞后會(huì)調(diào)用OnTriggerEnter()方法,這樣就完成了邏輯的判斷。
但是由于任何的碰撞體都能觸發(fā)OnTriggerEnter()所以我們要為可以進(jìn)行連接的物體添加一個(gè)tag,讓tag匹配的物品才能觸發(fā)組合。

然后是組合定位,讓組合的物體知道自己應(yīng)該在什么地方可以借鑒一下王國(guó)之淚的物品組合方法,在物體上掛載連接點(diǎn),通過(guò)連接點(diǎn)的位置和朝向來(lái)讓物體知道連接后的準(zhǔn)確位置。


兩個(gè)白點(diǎn)的位置就是連接點(diǎn)的位置(連接點(diǎn)是一個(gè)空物體僅用于掛載觸發(fā)連接邏輯的碰撞體和定位,圖中為了方便觀察,我渲染了兩個(gè)白點(diǎn)并不會(huì)對(duì)實(shí)際的運(yùn)行有任何影響)
當(dāng)兩個(gè)物體連接在一起時(shí)我們先把連接物的方向調(diào)整為與被連接物一致,然后通過(guò)連接點(diǎn)與物體錨點(diǎn)的相對(duì)位置計(jì)算出組合后物體正確的位置。

到了最簡(jiǎn)單的物品組合階段,只需要?jiǎng)?chuàng)建一個(gè)固定關(guān)節(jié)將二者組合起來(lái)就可以了,不過(guò)要注意使用固定關(guān)節(jié)要求物體上有剛體組件。下面我會(huì)給出OnTriggerEnter()內(nèi)部的代碼參考。


注意點(diǎn):
在物品組合的時(shí)候要先讓物品停下來(lái),不然可能會(huì)在組合的時(shí)候出現(xiàn)對(duì)不齊的情況
要關(guān)閉觸發(fā)器,避免多次觸發(fā)組合邏輯創(chuàng)建過(guò)多的固定關(guān)節(jié)組件
設(shè)置好物品的tag,避免物品與無(wú)關(guān)物品組合