Unity3d碰撞檢測中碰撞器與觸發器的概念
要產生碰撞必須為游戲對象添加剛體(Rigidbody)和碰撞器,剛體可以讓物體在物理影響下運動。碰撞體是物理組件的一類,它要與剛體一起添加到游戲對象上才能觸發碰撞。如果兩個剛體相互撞在一起,除非兩個對象有碰撞體時物理引擎才會計算碰撞,在物理模擬中,沒有碰撞體的剛體會彼此相互穿過。

為了驗證碰撞器與觸發器的區別,現設計一個簡單的游戲,讓小汽車與小球發生碰撞。新建一個C#腳本文件,把它拖給小汽車對象,雙擊該腳本文件進入腳本編輯器,在該腳本中加入如下兩個方法,并分別設置一個斷點:
// 開始接觸void OnTriggerEnter(Collider collider) {
Debug.Log("開始接觸:" + collider.gameObject.name);
//Debug.Log (collider.gameObject.name);
}
// 接觸持續中void OnTriggerStay(Collider collider) {
Debug.Log("接觸持續中");
}
// 接觸結束void OnTriggerExit(Collider collider) {
Debug.Log("接觸結束");
}
// 碰撞開始void OnCollisionEnter(Collision collision) {
var name = collision.collider.name;Debug.Log("碰撞物: " + name);
//var tag = collision.collider.tag;//Debug.Log("Tag is " + tag);
}
// 碰撞持續中void OnCollisionStay(Collision collision) {
//TODO:
}
// 碰撞結束void OnCollisionExit(Collision collision) {
//TODO:
}
觸發器:沒有作用力,如人站在靠近門的位置,門自動打開
- 上一篇:unity的碰撞檢測詳細解釋 2018/3/5
- 下一篇:WIN 7 WIN10不能安裝設備驅動的解決方法 2018/3/4