使用 Unity 開發遊戲時,往往需要檢測物件之間的碰撞。MonoBehaviour 提供了 OnCollisionXXX 和 OnTriggerXXX 系列函數用來反映 rigidbody / collider / trigger 的碰撞,若有偵測到符合對應表中的碰撞條件,就會呼叫函數並傳入相關參數。
以下 3 個函數用來檢測 collider 和 rigidbody collider 的碰撞情況,碰撞的相關資訊會傳入參數。 void OnCollisionEnter(Collision collision){ }
// 開始碰撞瞬間會呼叫一次 void OnCollisionStay(Collision collisionInfo){ }
// 碰撞期間會持續呼叫 void OnCollisionExit(Collision other){ }
// 停止碰撞瞬間會呼叫一次以下 3 個函數用來檢測 trigger 和 rigidbody collider 的觸碰情況,觸碰到的 collider 會傳入 other 參數。 void OnTriggerEnter(Collider other){ }
// 開始接觸瞬間會呼叫一次 void OnTriggerStay(Collider other){ }
// 接觸期間會持續呼叫 void OnTriggerExit(Collider other){ }
// 停止接觸瞬間會呼叫一次圖片來源:Unity官方文件
建議延伸閱讀:
>>
unity CharacterController 角色碰撞偵測
>>
unity C# 語法教學入門
>>
Unity Script 常用語法教學(unity課程入門學習筆記)