遊戲是學習 www.GameIsLearning.url.tw ar vr教育遊戲式學習 王啟榮 unity教學網站 行動遊戲學習平台

討論區 > Unity 教學與學習

unity Collision Trigger 碰撞偵測與觸發對應表

王啟榮 發表於 2017/09/01_18:59

  使用 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官方文件



建議延伸閱讀:
>> unity CharacterController 角色碰撞偵測
>> unity C# 語法教學入門
>> Unity Script 常用語法教學(unity課程入門學習筆記)