Unity3D 中使用OnTiggerEnter遇到的不觸發問題

移動GameObject,綁定BoxCollider,Istrigger選中。

固定GameObject,綁定BoxCollider,剛體屬性,IsKinematic選中。

此種情況下,移動GameObject中的OnTriggerEnter()很多時候都無法被觸發。

 

移動GameObject,綁定BoxCollider,剛體屬性,IsKinematic選中。

固定GameObject,綁定BoxCollider,Istrigger選中。

此種情況下,固定GameObject中的OnTriggerEnter()能穩定觸發。

 

另外在遊戲幀率太低的情況下,OnTriggerEnter()可能不會被觸發,沒經過測試,只是可能。

 

更新:

當IsKinematic選中時,剛體會進入休眠狀態。

rigidbody.IsSleeping()返回值爲true。

對於前面的第一種情況。固定的GameObject的剛體屬性中,IsKinematic 不選中。

在Update函數中持續調用 rigidbody.WakeUp();

可以使移動的GameObject中的Collider的Tigger響應(移動物體無剛體屬性)。

爲了使固定的GameObject在IsKinematic在不選中的情況下保持靜止,勾選rigidbody下的Freeze Position 和 Freeze Rotation

 

原文鏈接:http://blog.sina.com.cn/s/blog_aa2a90440101ia9p.html

聲明: 本文由( liuxiaoni )原創編譯,轉載請保留鏈接: Unity3D 中使用OnTiggerEnter遇到的不觸發問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章