本節(jié)要點
#1.碰撞事件簡介
1.何為碰撞事件?
當一個用剛體控制的物體與另外一個物體碰撞時,就會觸發(fā)碰撞事件。注:目標物體必須帶有 Collider 組件。
碰撞 Collision
比如,一款射擊類游戲,我們發(fā)射出了子彈,子彈是一個由剛體控制運動的物體,子彈射中了敵人,我們如何監(jiān)測到這個碰撞??
#2.碰撞事件監(jiān)測方法
1.OnCollisionEnter(Collision)
當碰撞開始時調用,只會調用該方法一次。
2.OnCollisionExit(Collision)
當碰撞結束時調用,只會調用該方法一次。
3.OnCollisionStay(Collision)
當碰撞進行中時,會持續(xù)調用該方法。
4.Collision 參數(shù)
碰撞,一個類。作用:用于傳遞碰撞信息。
Collision.gameObject 屬性,與當前物體碰撞的物體的引用。
gameObject.name 屬性,當前物體的名字。
場景視圖
關鍵代碼
public class CollisionCube : MonoBehaviour {
//誰碰撞了我??
//碰撞發(fā)生時候執(zhí)行一次
void OnCollisionEnter(Collision coll)
{
//Debug.Log("Enter"+coll.gameObject.name);
if (coll.gameObject.name != "Ground")
{
Debug.Log("Enter" + coll.gameObject.name);
}
}
//碰撞離開后發(fā)生一次
void OnCollisionExit(Collision coll)
{
if (coll.gameObject.name != "Ground")
{
Debug.Log("Exit" + coll.gameObject.name);
}
}
//碰撞時持續(xù)發(fā)生
void OnCollisionStay(Collision coll)
{
if (coll.gameObject.name != "Ground")
{
Debug.Log("Stay" + coll.gameObject.name);
}
}
}
小結
Unity API.png