1. 程式人生 > >Unity碰撞檢測。

Unity碰撞檢測。

歡迎來到unity學習unity培訓unity企業培訓教育專區,這裡有很多U3D資源U3D培訓視訊U3D教程U3D常見問題U3D專案原始碼,我們致力於打造業內unity3d培訓、學習第一品牌。

       在unity3d中,能檢測碰撞發生的方式有兩種,一種是利用碰撞器,另一種則是利用觸發器。這兩種方式的應用非常廣泛。為了完整的瞭解這兩種方式,我們必須理解以下概念:
  (一)碰撞器是一群元件,它包含了很多種類,比如:
       Box Collider,Capsule Collider等,這些碰撞器應用的場合不同,但都必須加到GameObjecet身上。
  (二)所謂觸發器,只需要在檢視面板中的碰撞器元件中

       勾選IsTrigger屬性選擇框。
  (三)給主角新增剛體(Rigidbody)元件,並且取消剛體元件的重力選項UseGravity。
觸發資訊檢測   
  1、當進入觸發器
       MonoBehaviour.OnTriggerEnter( Collider other )
  2、當退出觸發器
       MonoBehaviour.OnTriggerExit( Collider other )
  3、當逗留觸發器
       MonoBehaviour.OnTriggerStay( Collider other )
       // 觸發接觸的那一幀被呼叫
       void OnTriggerEnter(Collider other)
       {
           Debug.Log("enter");
           Debug.Log(other.gameObject.name);
       }
       //觸發接觸的每幀都被呼叫
       void OnTriggerStay(Collider other)
       {
           Debug.Log("Stay");
       }
       // 觸發結束被呼叫
       void OnTriggerExit(Collider other)
       {
           Debug.Log("Exit");
       } 
碰撞資訊檢測


  1、當進入碰撞器
       MonoBehaviour.OnCollisionEnter( Collision collisionInfo )
  2、當退出碰撞器
       MonoBehaviour.OnCollisionExit( Collision collisionInfo )
  3、當逗留碰撞器
       MonoBehaviour.OnCollisionStay( Collision collisionInfo )
       // 碰撞接觸的那一幀被呼叫
       void OnCollisionEnter(Collision collision)
       {
           Debug.Log("enter");
           Debug.Log(collision.gameObject.name);
       }
       // 碰撞接觸的每幀都被呼叫
       void OnCollisionStay(Collision collision)
       {
           Debug.Log("Stay");
       }
       // 碰撞結束被呼叫
       void OnCollisionExit(Collision collision)
       {
           Debug.Log("Exit");
       }