Unity3D實(shí)現(xiàn)碰撞檢測(cè)方法技巧好簡(jiǎn)單哦
2019/11/1??????點(diǎn)擊:
一、碰撞檢測(cè)方法
碰撞事件:當(dāng)一個(gè)用剛體控制的物體與另外一個(gè)物體碰撞時(shí),就會(huì)觸發(fā)碰撞事件(目標(biāo)物體必須帶有 Collider 組件),比如一款射擊類游戲,發(fā)射出的子彈可能會(huì)射中敵人也可能會(huì)射中箱子,我們就需要監(jiān)測(cè)這個(gè)碰撞事件監(jiān)測(cè)方法:
OnCollisionEnter(Collision):當(dāng)碰撞開(kāi)始時(shí)調(diào)用,只會(huì)調(diào)用該方法一次
OnCollisionExit(Collision):當(dāng)碰撞結(jié)束時(shí)調(diào)用,只會(huì)調(diào)用該方法一次
OnCollisionStay(Collision):當(dāng)碰撞進(jìn)行中時(shí),會(huì)持續(xù)調(diào)用該方法
Collision參數(shù):一個(gè)類,用于傳遞碰撞信息對(duì)象
Collision.gameObject屬性:當(dāng)前物體碰撞的物體的引用
gameObject.name屬性:當(dāng)前物體的名字
碰撞事件:當(dāng)一個(gè)用剛體控制的物體與另外一個(gè)物體碰撞時(shí),就會(huì)觸發(fā)碰撞事件(目標(biāo)物體必須帶有 Collider 組件),比如一款射擊類游戲,發(fā)射出的子彈可能會(huì)射中敵人也可能會(huì)射中箱子,我們就需要監(jiān)測(cè)這個(gè)碰撞事件監(jiān)測(cè)方法:
OnCollisionEnter(Collision):當(dāng)碰撞開(kāi)始時(shí)調(diào)用,只會(huì)調(diào)用該方法一次
OnCollisionExit(Collision):當(dāng)碰撞結(jié)束時(shí)調(diào)用,只會(huì)調(diào)用該方法一次
OnCollisionStay(Collision):當(dāng)碰撞進(jìn)行中時(shí),會(huì)持續(xù)調(diào)用該方法
Collision參數(shù):一個(gè)類,用于傳遞碰撞信息對(duì)象
Collision.gameObject屬性:當(dāng)前物體碰撞的物體的引用
gameObject.name屬性:當(dāng)前物體的名字
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") //如果當(dāng)前接觸到的物體不是地面 Debug.Log("與物體" + coll.gameObject.name + "發(fā)生碰撞"); } void OnCollisionStay(Collision coll) { if (coll.gameObject.name != "Ground") Debug.Log("與物體" + coll.gameObject.name + "重合"); } void OnCollisionExit(Collision coll) { if (coll.gameObject.name != "Ground") Debug.Log("離開(kāi)物體" + coll.gameObject.name); } }
各位大俠,是不是實(shí)現(xiàn)碰撞檢測(cè)功能超級(jí)簡(jiǎn)單啊~~~
- 上一篇:unity3d中利用網(wǎng)格+貼圖繪制血條/進(jìn)度條 2019/11/1
- 下一篇:PYTHON調(diào)用C++DLL的參數(shù)傳遞方法 2019/9/16