Unity3D剛體碰撞事件監(jiān)測與處理(十二)

本節(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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容