Continuous?Dynamic---只對Discrete的剛體使用Discrete檢測,對其他任何剛體或者靜態物體都使用Continuous檢測.
要點:Continuous和Continuous?Dynamic都會對靜態物體使用Continuous檢測.
在使用的時候,一般對高速運動的剛體使用Continuous?Dynamic,這時只需要記住,要將其他的剛體設置為非Discrete才會讓高速運動的物體以及其他剛體之間產生Continuous檢測,可以將其他剛體設置為Continuous或者Continuous?Dynamic,但是不會進行高速運動的其他物體不必設置為Continuous?Dynamic,因為Continuous?Dynamic比Continuous更消耗性能.
Continuous和Continuous?Dynamic的區別在于對Continuous使用何種檢測,Continuous使用Discrete,而Continuous?Dynamic使用Continuous!
Continuous?Collision?Detection?is?only?supported?for?Rigidbodies?with?Sphere-,?Capusle-?or?BoxColliders!!!
Static Collider 靜態碰撞器
These are GameObjects that donothave a Rigidbody attached, butdohave a Collider attached. These objects should remain still, or move very little. These work great for your environment geometry. They will not move if a Rigidbody collides with them.
指的是沒有附加剛體而附加了碰撞器的游戲對象。這類對象會保持靜止或者很輕微的移動。對于環境模型十分好用,當和剛體碰撞時而不會移動。
Rigidbody Collider 剛體碰撞器
These GameObjects contain both a Rigidbody and a Collider. They are completely affected by the physics engine through scripted forces and collisions. They might collide with a GameObject that only contains a Collider. These will likely be your primary type of Collider in games that use physics.
指的是同時附加了剛體和碰撞器的游戲對象。通過腳本的力量和碰撞完全受物理引擎的影響。可以和只包含碰撞器的游戲對象碰撞。將會成為你游戲中使用物理效果的基本類型碰撞器。
Kinematic Rigidbody Collider 運動學剛體碰撞器
This GameObject contains a Collider and a Rigidbody which is marked IsKinematic. To move this GameObject, you modify itsTransformComponent, rather than applying forces. They're similar to Static Colliders but will work better when you want to move the Collider around frequently. There are some other specialized scenarios for using this GameObject.
指的是同時包含碰撞器和剛體,并且激活IsKinematic的一類游戲對象,要移動這類游戲對象,要修改它的Transform組件(指的是position和rotation這類屬性),而不是用力。它們很像靜態碰撞器,不過如果你想要不停地到處移動碰撞器,它們會更好用。這類游戲對象還有許多其他的獨特使用情景。
運動學剛體碰撞器是個非常懶惰和霸道的家伙,它碰到其他碰撞器完全沒有反應(其實還是有點反應,會觸發一些碰撞函數的,后面有解釋)。它不受力、重力或扭矩的影響。可以通過設置Transform 的position和rotation來準確的操作它們或者讓它們動起來,但是,它們可以和其他的非運動學剛體互相作用。對于放在運動學剛體碰撞器上面的剛體,會受到運動學剛體施加的摩擦力。
移動的靜態碰撞器VS靜止的靜態碰撞器
沒有任何碰撞效果。這在意料之中,因為沒有一個添加了Rigdbody屬性,肯定不會碰撞啦!
移動的靜態碰撞器VS靜止的剛體碰撞器
沒有任何碰撞效果。
這個結果有點意外,明明一個已經添加了Rigdbody,為什么還是無法發生碰撞呢?這是因為添加了Rigdbody的正方體是靜止的,而靜止的剛體會進入休眠。好吧,又遇到了新的名詞,剛體休眠。例如,當一個正方體掉到地板上靜止后就會進入剛體休眠。剛體休眠完全自動發生。只要剛體的速度低于sleepAngularVelocity和sleepVelocity,該剛體就會開始休眠。其空閑一些幀后,就會被設置成休眠狀態。處于休眠狀態中的物體,不會再對其進行碰撞檢測和模擬。這會節約大量的CPU開銷。這就解釋了為什么我們這個實驗里沒有碰撞發生,因為它睡覺去了,而那個移動的靜態碰撞器又無法喚醒它,所以它壓根就不知道有人碰到了自己。這里又有一個問題了,那么什么情況下可以喚醒已經休眠了的剛體呢?有4中情況:
被施加了外力,也就是說在代碼里使用了AddForce;
剛體的屬性發生了變化;
和它通過關節連接的剛體發生了移動,因為連帶關系,所以它也被喚醒了;
被其他剛體碰撞器碰撞。但是,只有處于運動狀態中的剛體(包括普通的剛體碰撞器和運動學剛體碰撞器)能喚醒休眠中的剛體,靜態碰撞器不能喚醒休眠中的剛體。即如果你將一個靜態碰撞器(沒有和任何剛體綁定過)綁定到處于休眠中的剛體,或者將靜態碰撞器抽離處于休眠中的剛體時,這個休眠中的剛體是不會被喚醒的。但是如果你將一個運動中的剛體從它所屬的且處于休眠狀態中的頂層剛體移出時,處于休眠中的剛體將會被喚醒,且會在圖形更新里被重新正確的計算。
移動的剛體碰撞器VS靜止的靜態碰撞器
有碰撞效果,具體為:對于移動的剛體碰撞器在遇到靜態碰撞器后會產生物理效果,如反彈、無法前進等;對于靜止的靜態碰撞器,會產生輕微的碰撞效果,如輕微的晃動,但是不會移動。
移動的剛體碰撞器VS靜止的剛體碰撞器
有碰撞效果,對于兩個物體都出現正常的物理效果,如反彈等。
移動的靜態碰撞器VS靜止的運動學剛體碰撞器
沒有任何碰撞效果。運動學剛體碰撞器是不受到任何外力作用的。
移動的運動學剛體碰撞器VS靜止的靜態碰撞器
沒有任何碰撞效果。運動學剛體碰撞器是不受到任何外力作用的。
移動的運動學剛體碰撞器VS靜止的剛體碰撞器
有碰撞效果,但僅剛體碰撞器有碰撞效果,如反彈等,運動學剛體碰撞器不受力的作用。
移動的剛體碰撞器VS靜止的運動學剛體碰撞器
有碰撞效果,但僅剛體碰撞器有碰撞效果,如反彈等,運動學剛體碰撞器就像一堵墻一樣一動不動。
移動的運動學剛體碰撞器VS靜止的運動學剛體碰撞器
兩個太上皇相見了會怎么樣呢?沒有任何反應……就像兩個靜態碰撞器一樣。