Unity3d碰撞檢測中碰撞器與觸發器的概念
要產生(sheng)碰(peng)撞(zhuang)(zhuang)必(bi)須為游戲(xi)對(dui)(dui)象添加(jia)剛體(ti)(ti)(ti)(Rigidbody)和碰(peng)撞(zhuang)(zhuang)器,剛體(ti)(ti)(ti)可(ke)以(yi)讓(rang)物(wu)體(ti)(ti)(ti)在(zai)物(wu)理(li)(li)影響下(xia)運動。碰(peng)撞(zhuang)(zhuang)體(ti)(ti)(ti)是(shi)物(wu)理(li)(li)組件的一類,它(ta)要與剛體(ti)(ti)(ti)一起(qi)(qi)添加(jia)到游戲(xi)對(dui)(dui)象上才能觸發(fa)碰(peng)撞(zhuang)(zhuang)。如(ru)果兩個剛體(ti)(ti)(ti)相互撞(zhuang)(zhuang)在(zai)一起(qi)(qi),除(chu)非兩個對(dui)(dui)象有碰(peng)撞(zhuang)(zhuang)體(ti)(ti)(ti)時物(wu)理(li)(li)引擎才會計(ji)算碰(peng)撞(zhuang)(zhuang),在(zai)物(wu)理(li)(li)模(mo)擬(ni)中,沒有碰(peng)撞(zhuang)(zhuang)體(ti)(ti)(ti)的剛體(ti)(ti)(ti)會彼此相互穿過。
為了驗證碰撞(zhuang)器與觸(chu)發器的區別,現(xian)設計一(yi)(yi)個(ge)(ge)簡單的游(you)戲,讓小(xiao)汽車與小(xiao)球發生(sheng)碰撞(zhuang)。新建一(yi)(yi)個(ge)(ge)C#腳本(ben)(ben)文(wen)件,把它拖(tuo)給小(xiao)汽車對象,雙擊(ji)該腳本(ben)(ben)文(wen)件進入(ru)腳本(ben)(ben)編輯(ji)器,在該腳本(ben)(ben)中(zhong)加入(ru)如(ru)下兩個(ge)(ge)方法(fa),并分別設置一(yi)(yi)個(ge)(ge)斷點:
// 開始接觸void OnTriggerEnter(Collider collider) {
Debug.Log("開始接觸:" + collider.gameObject.name);
//Debug.Log (collider.gameObject.name);
}
// 接觸持續中void OnTriggerStay(Collider collider) {
Debug.Log("接觸(chu)持續中");
}
// 接觸(chu)結束(shu)void OnTriggerExit(Collider collider) {
Debug.Log("接觸結束");
}
// 碰撞開始void OnCollisionEnter(Collision collision) {
var name = collision.collider.name;Debug.Log("碰(peng)撞物: " + name);
//var tag = collision.collider.tag;//Debug.Log("Tag is " + tag);
}
// 碰(peng)撞(zhuang)持(chi)續中(zhong)void OnCollisionStay(Collision collision) {
//TODO:
}
// 碰撞結束void OnCollisionExit(Collision collision) {
//TODO:
}
觸(chu)發(fa)器:沒(mei)有作用力,如人站在靠近門的位置(zhi),門自動(dong)打開(kai)
- 上一篇:unity的碰撞檢測詳細解釋 2018/3/5
- 下一篇:WIN 7 WIN10不能安裝設備驅動的解決方法 2018/3/4
