1. 程式人生 > >OnTriggerEnter與Rigidbody-Unity碰撞檢測

OnTriggerEnter與Rigidbody-Unity碰撞檢測

寫在前面的話

用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 ×

結論在上面