Collider(碰撞器)詳解

0、什么是碰撞器?
描述了物體可被碰撞的邊界,以及碰撞過(guò)程中相互影響效果。碰撞效果:兩個(gè)游戲?qū)ο笈鲈谝黄?,通過(guò)物理引擎產(chǎn)生類似現(xiàn)實(shí)的效果
1、碰撞器方法


****情形一****:


情形一

當(dāng)兩個(gè)游戲?qū)ο髶碛袆傮w和碰撞器,不管腳本掛載那個(gè)游戲?qū)ο笊砩隙伎梢赃M(jìn)入OnCollision,兩者都掛在碰撞器腳本都會(huì)調(diào)用各自身腳本上的OnCollision方法。
打印結(jié)果:


打印結(jié)果

****情形二****:


情形二

白色膠囊沒(méi)有剛體,但是有碰撞器,也有碰撞器腳本,一開(kāi)始不會(huì)進(jìn)入自身的碰撞器方法。紅色的小球有剛體,有碰撞器,也有碰撞器腳本,一開(kāi)始就會(huì)進(jìn)入自身的碰撞器方法打印與地面的接觸。當(dāng)兩個(gè)物體發(fā)生碰撞,兩者腳本中的碰撞器方法都會(huì)被觸發(fā)打印打印結(jié)果:首先一開(kāi)始發(fā)現(xiàn)只有有剛體的紅色小球打印了自己的碰撞器方法


游戲開(kāi)始兩物體未碰撞階段

結(jié)果2:


兩者碰撞后,各自的腳本方法都響應(yīng)了

****情形三****:


沒(méi)有剛體,沒(méi)有碰撞器

有剛體,沒(méi)有碰撞器

紅色的小球有剛體,有碰撞器,也有碰撞器腳本,一開(kāi)始就會(huì)進(jìn)入自身的碰撞器方法打印與地面的接觸。而膠囊怎不會(huì)打印任何方法二者相碰,一擁有剛體與碰撞器并且身上掛載碰撞器方法的紅色小球遇到?jīng)]有碰撞器的膠囊(不管有沒(méi)有剛體)會(huì)穿過(guò)去。打印結(jié)果:


打印結(jié)果一:膠囊沒(méi)有剛體,沒(méi)有碰撞器

打印結(jié)果二:膠囊有剛體,沒(méi)有碰撞器

****情形四****:


碰撞兩方有碰撞器有碰撞器方法腳本,沒(méi)有剛體

當(dāng)碰撞兩方只有碰撞器沒(méi)有剛體會(huì)互相穿過(guò)結(jié)果也是顯而易見(jiàn):沒(méi)有打印任何東西
總結(jié):
1、只要有剛體有碰撞器,并且與其他碰撞器碰撞就會(huì)進(jìn)入自身的碰撞器方法2、沒(méi)有剛體,有碰撞器的物體被一個(gè)擁有剛體的碰撞器碰撞,都會(huì)調(diào)用自身的碰撞器方法。3、沒(méi)有剛體的兩個(gè)碰撞器相撞不會(huì)調(diào)用任何碰撞器方法
最終結(jié)論: 碰撞器(Collider)不需要?jiǎng)傮w(Rigidbody)剛體(Rigidbody)要發(fā)生碰撞,一定需要碰撞器(Collider)碰撞器決定了碰撞發(fā)生時(shí)的邊界條件剛體決定了碰撞發(fā)生后的物體的運(yùn)動(dòng)效果沒(méi)有碰撞器的剛體,會(huì)在物理模擬中相互穿透。

2、觸發(fā)器方法


****情形一:****


案例一

當(dāng)兩方?jīng)]有剛體,只有觸發(fā)器,,不會(huì)打印觸發(fā)器方法。無(wú)打?。?/p>

案例二

其中一方是觸發(fā)器,另一方是碰撞器,都不會(huì)打印東西。無(wú)打?。?/p>

****情形二:****


當(dāng)有剛體的觸發(fā)器,一開(kāi)始就會(huì)與其相撞的物體產(chǎn)生交互,穿透,并打印觸發(fā)方法。打印結(jié)果:



****情形三:****


當(dāng)它與方塊碰撞的時(shí)候,會(huì)打印各自的觸發(fā)器方法。


****情形四:****


當(dāng)兩方都有觸發(fā)器并且都擁有剛體,碰撞的時(shí)候會(huì)打印各自的觸發(fā)器方法


****情形五:****


只要一方是觸發(fā)器,另一方有碰撞體就會(huì)觸發(fā)各自的觸發(fā)器方法
結(jié)論:
1、想要打印觸發(fā)器方法,必須有一方是觸發(fā)器,必須有一方帶有剛體。二者缺一不可。2、雙方都是觸發(fā)器,或者其中一方是觸發(fā)器,另一方是碰撞器,都不會(huì)打印。3、只要一方是觸發(fā)器,并且有剛體組件,不管另一方是碰撞體還是觸發(fā)器都會(huì)打印各自的觸發(fā)器方法。4、一般我們將觸發(fā)器方法寫(xiě)在角色碰到的物體上,角色一般不參與觸發(fā)方法。只寫(xiě)碰撞方法。
3、碰撞器和觸發(fā)器的區(qū)別?
****3-1、****碰撞器是觸發(fā)器的載體,而觸發(fā)器只是碰撞器身上的一個(gè)屬性。****3-2、****當(dāng)IsTrigger=false時(shí),碰撞器根據(jù)物理引擎引發(fā)碰撞,產(chǎn)生碰撞的效果,可以調(diào)用OnCollisionEnter/Stay/Exit函數(shù);****3-3、****當(dāng)IsTrigger=true時(shí),碰撞器被物理引擎所忽略,沒(méi)有碰撞效果,可以調(diào)用OnTriggerEnter/Stay/Exit函數(shù)。****3-4、****如果既要檢測(cè)到物體的接觸又不想讓碰撞檢測(cè)影響物體移動(dòng)或要檢測(cè)一個(gè)物件是否經(jīng)過(guò)空間中的某個(gè)區(qū)域這時(shí)就可以用到觸發(fā)器。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容