1. 程式人生 > >Unity中碰撞檢測小結

Unity中碰撞檢測小結

兩個碰撞體發生物理碰撞所需條件:

  1. 兩個物體所在的層(layer),在物理層上能夠發生碰撞
  2. 兩個物體均需要碰撞體(Collider)元件,最少一方需要剛體(Rigidbody) 碰撞函式:
    void OnCollisionStay(Collision info); //檢測是否發生碰撞
    void OnCollisionEnter(Collision info); //碰撞開始時觸發
    void OnCollisionExit(Collision info); //碰撞離開時觸發
    註釋:角色控制器是個特殊的剛體,可以和碰撞體發生物理碰撞,但是不能檢測碰撞資訊!!即以上三個函式他無法呼叫

兩個物體發生碰撞觸發,即兩個物體可以相互穿透,所需條件:
1.滿足以上兩點
2.兩個物體最少有一個物體碰撞器點了IsTrigger屬性。
void OnTriggerEnter(Collider other);
void OnTriggerStay(Collider other);
void OnTriggerExit(Collider other);
註釋:雙方不管哪一方點了IsTrigger屬性,兩個物體均可以在指令碼中呼叫這三個函式,角色控制器也滿足這條。