一、碰撞器(Collider)
? ? ? ? ? ? ? ? 如: Box Collider 盒碰撞器、Capsule Collider 膠囊碰撞器、Mesh Collider 網格碰撞器、Sphere Collider球碰撞器? 等等這一類組件就是碰撞器。
1、碰撞器的方法
2、碰撞器的幾種情況
(1)情況一:當兩個游戲對象擁有剛體和碰撞器,不管腳本掛載那個游戲對象身上都可以進入OnCollision,兩者都掛在碰撞器腳本都會調用各自身腳本上的OnCollision方法。
結果:
(2)情況二:
? · 白色膠囊沒有剛體,但是有碰撞器,也有碰撞器腳本,一開始不會進入自身的碰撞器方法。
· 紅色的小球有剛體,有碰撞器,也有碰撞器腳本,一開始就會進入自身的碰撞器方法打印與地面的接觸。
· 當兩個物體發生碰撞,兩者腳本中的碰撞器方法都會被觸發打印
結果:
在一開始發現只有有剛體的紅色小球打印了自己的碰撞器方法
當發生碰撞后如下結果
(3)情況三:紅色的小球有剛體,有碰撞器,也有碰撞器腳本,一開始就會進入自身的碰撞器方法打印與地面的接觸,而膠囊怎不會打印任何方法。
二者相碰,一擁有剛體與碰撞器并且身上掛載碰撞器方法的紅色小球遇到沒有碰撞器的膠囊(不管有沒有剛體)會穿過去。
結果:
(a)白色膠囊沒有剛體 、沒有碰撞器
(b)白色膠囊有剛體 、沒有碰撞器
(4)情況四:當碰撞兩方只有碰撞器沒有剛體會互相穿過
? ? ? ? ? ? ? ? ? ? ? ? ?結果很明顯:沒有打印任何東西
總結:
1、只要有剛體有碰撞器,并且與其他碰撞器碰撞就會進入自身的碰撞器方法
2、沒有剛體,有碰撞器的物體被一個擁有剛體的碰撞器碰撞,都會調用自身的碰撞器方法。
3、沒有剛體的兩個碰撞器相撞不會調用任何碰撞器方法
得出結論:
<1>碰撞器(Collider)不需要剛體(Rigidbody)
<2>剛體(Rigidbody)要發生碰撞,一定需要碰撞器(Collider)
<3>碰撞器決定了碰撞發生時的邊界條件
<4>剛體決定了碰撞發生后的物體的運動效果
<5>沒有碰撞器的剛體,會在物理模擬中相互穿透。
二、觸發器(Trigger)
? ? ? ? ? ? 這些(Box Collider 盒碰撞器、Capsule Collider 膠囊碰撞器、Mesh Collider 網格碰撞器、Sphere Collider球碰撞器? 等等這一類組件。)碰撞器在檢視面板中勾選IsTrigger屬性就變成了觸發器
1、觸發器方法
2、觸發器的幾種情況
(1)情況一:當兩方沒有剛體,只有觸發器,,不會打印觸發器方法。
無打印:
其中一方是觸發器,另一方是碰撞器,都不會打印東西。
無打印
(2)情況二:當有剛體的觸發器,一開始就會與其相撞的物體產生交互,穿透,并打印觸發方法。
打印結果:
(3)情況三:
當它與方塊碰撞的時候,會打印各自的觸發器方法,如下圖:
(4)情況四:當兩方都有觸發器并且都擁有剛體,碰撞的時候會打印各自的觸發器方法
(5)情況五:只要一方是觸發器,另一方有碰撞體就會觸發各自的觸發器方法