1. 程式人生 > >Unity觸發檢測和碰撞檢測

Unity觸發檢測和碰撞檢測

void OnCollisionEnter(Collision col)
    {
        Debug.Log("開始碰撞" + col.collider.gameObject.name);
    }
    void OnCollisionStay(Collision col)
    {
        Debug.Log("持續碰撞中" + col.collider.gameObject.name);
    }
    void OnCollisionExit(Collision col)
    {
        Debug.Log("碰撞結束" + col.collider
.gameObject.name); }

發生碰撞的條件:主動方必須有Rigidbody,發生碰撞的兩個遊戲物件必須有Collider,被動方對於RigidBody可又不可無,引數是表示被動方
這裡寫圖片描述

void OnTriggerEnter(Collider other)
    {
        Debug.Log("觸發器開始出發:" + other.gameObject.name);
    }
    void OnTriggerStay(Collider other)
    {
        Debug.Log("觸發器檢測中:" + other.gameObject.name
); } void OnTriggerExit(Collider other) { Debug.Log("觸發器結束:" + other.gameObject.name); }

發生觸發的條件:發生碰撞的物體兩者其中之一有Rigidbody即可,發生碰撞的兩個遊戲物件必須有Collider,其中一方勾選IsTrigger即可,引數是表示被動方
這裡寫圖片描述