幫助,我正在使用 unity 2020.3.15f2,OnCollisionEnter 不起作用。
我有 2 個游戲物件,都沒有觸發 SphereColliders,也沒有運動學剛體。
我的剛體沒有重力,但它們有常數(不要在 z 上移動,也不要在 x 或 y 上旋轉)
我相信它們會發生碰撞,因為兩個游戲物件都會發生碰撞,但是當我呼叫包含 OnCollisionEnter 的腳本(即呼叫 Debug.Log("Collision"))時,我在控制臺上看不到任何內容。
void OnCollisionEnter(Collision col){
Debug.Log("Collision"); //i don′t see anything on console
}
這是我為兩個游戲物件設定的 SphereCollider 和 RigidBody:

腳本位于這些游戲物件的父級上,如下所示:
這是場景層次
這是“元素”層次結構(注意:我編輯它以秘密維護我的游戲物件的名稱,這是我的老板的目標)
正如您在此處看到的,“元素”是具有 OnCollisionEnter 腳本的元素
uj5u.com熱心網友回復:
我通過思考解決:我的場景是如何設定的?,我看到包含碰撞器和剛體的游戲物件是具有 OnCollisionEnter 腳本的游戲物件的子級。
顯然,OnCollisionEnter 僅適用于游戲物件本身,如果腳本附加到游戲物件的父級或子級,則它將不起作用。
因此,我只需要在帶有碰撞器的游戲物件上制作一個碰撞檢測腳本,并將其與父腳本糾纏在一起來做......認為游戲物件在碰撞時應該做的事情。
感謝大家的反饋和幫助,特別感謝 @derHugo 和 @Ruzhim,他們幫助我發現了這個問題。
解決方案:使帶有 OnCollisionEnter 的腳本位于具有碰撞器和剛體的游戲物件上,而不是父物件上,而不是子物件上。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/369717.html
上一篇:影片結束時如何做某事?(統一)
下一篇:使網格渲染器閃爍4次
