Unity3D實(shí)現碰撞檢測方法技巧好簡單(dān)哦
2019/11/1 點擊:
一、碰撞檢測方法
碰撞事件:當(dāng)一個用(yòng)剛體控製的物體與另外一個物體碰撞時,就會觸發碰撞(zhuàng)事件(目標物體必須帶有 Collider 組件),比如一(yī)款射擊類遊戲,發射出的子彈可能會射中敵人也可能會射中箱子,我們就需(xū)要監測這個碰撞事件監測方法:
OnCollisionEnter(Collision):當碰撞開始時調(diào)用,隻會調用(yòng)該方法一次
OnCollisionExit(Collision):當(dāng)碰撞結束時調用,隻會(huì)調用該方法一次
OnCollisionStay(Collision):當碰撞(zhuàng)進行中時,會持續調用該方法
Collision參(cān)數:一個類,用於傳遞碰撞信息對象(xiàng)
Collision.gameObject屬性:當前物體碰撞的物體的引用
gameObject.name屬(shǔ)性:當前物(wù)體(tǐ)的(de)名字
碰撞事件:當(dāng)一個用(yòng)剛體控製的物體與另外一個物體碰撞時,就會觸發碰撞(zhuàng)事件(目標物體必須帶有 Collider 組件),比如一(yī)款射擊類遊戲,發射出的子彈可能會射中敵人也可能會射中箱子,我們就需(xū)要監測這個碰撞事件監測方法:
OnCollisionEnter(Collision):當碰撞開始時調(diào)用,隻會調用(yòng)該方法一次
OnCollisionExit(Collision):當(dāng)碰撞結束時調用,隻會(huì)調用該方法一次
OnCollisionStay(Collision):當碰撞(zhuàng)進行中時,會持續調用該方法
Collision參(cān)數:一個類,用於傳遞碰撞信息對象(xiàng)
Collision.gameObject屬性:當前物體碰撞的物體的引用
gameObject.name屬(shǔ)性:當前物(wù)體(tǐ)的(de)名字
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Coll: MonoBehaviour { void Start() { Debug.Log("StartforColl"); //輸出調(diào)試 } void Update() { } void OnCollisionEnter(Collision coll) { if (coll.gameObject.name != "Ground") //如果當前接觸到的物體不是地麵 Debug.Log("與物(wù)體" + coll.gameObject.name + "發生碰撞"); } void OnCollisionStay(Collision coll) { if (coll.gameObject.name != "Ground") Debug.Log("與物體" + coll.gameObject.name + "重(chóng)合"); } void OnCollisionExit(Collision coll) { if (coll.gameObject.name != "Ground") Debug.Log("離開物體(tǐ)" + coll.gameObject.name); } }
各位大俠,是不是實現碰撞檢測功能超級(jí)簡(jiǎn)單啊~~~
- 上一篇:unity3d中利(lì)用網格+貼圖繪製血條/進度條(tiáo) 2019/11/1
- 下一篇(piān):PYTHON調用C++DLL的參數傳遞方法 2019/9/16