OnTriggerEnter與Rigidbody-Unity碰撞檢測
阿新 • • 發佈:2019-02-11
寫在前面的話
用unity做開發碰撞的檢測是經常要用到的,但是有時候會發現碰撞不起作用,小弟頗為疑惑。於是做了個小小的實驗來探討一下。
Unity為4.6.3
Rigidbody元件
常用的
1.Mass 指定GameObject質量
2.Drag 指定阻力(一般為空氣阻力)
3.Angular Drag 旋轉阻力
4.Use Gravity 是否啟用重力,勾選則啟用
5.Is Kinematic 是否禁用物理效果,勾選則禁用
6.Freeze Position 禁用移動(禁用軸打勾)
7.Freeze Rotation 禁用旋轉(禁用軸打勾)
OnTriggerEnter
結論:
兩個物體A,B(AB都已經掛好Collider),用A去撞擊B,OnTriggerEnter指令碼掛在A上。A、B其中一個勾選Collider元件下的Is Trigger就可以,但是A(呼叫OnTriggerEnter的物體)必須有Rigidbody。
下面是一個小測試例子
物體A(掛指令碼)
物體B
測試結果:
只列出主要情況:
物體 | 是否Rigidbody | 是否Is Trigger | 是否檢測到碰撞 |
---|---|---|---|
A(掛指令碼) | √ | √ | 是 |
B | × | × | |
A(掛指令碼) | × | × | 否 |
B | √ | √ | |
A(掛指令碼) | √ | × | 是 |
B | × | √ | |
A(掛指令碼) | × | √ | 否 |
B | √ | × |
結論在上面