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ā)器。