1. 程式人生 > >Unity3D學習筆記之碰撞器和觸發器

Unity3D學習筆記之碰撞器和觸發器

碰撞器種類:

  1. Box Collider(盒碰撞器)——立方體

  2. Sphere Collider(球碰撞器)——球體

  3. Capsule Collider(膠囊碰撞器)——膠囊體

  4. Mesh Collider(網格碰撞器)——從物體的網格建立一個碰撞器,不能與其他網格碰撞器相碰撞

  5. Wheel Collider(輪碰撞器)——特殊的碰撞器,用於建立車或其他的交通工具的車輪

碰撞器屬性:

  1. Material:材質

  2. Is Trigger:開啟觸發器

  3. Radius:半徑

  4. Center:中心

  5. Size:碰撞器的大小

  6. Convex(網格碰撞器特有):如啟用,該網格碰撞器將會和其他網格碰撞器碰撞,突起的網格碰撞器限制在255個三角形面內。

碰撞器型別:

  1. Static Collider(靜態碰撞器):只有碰撞器,沒有剛體。基本保持靜止或者輕微的移動,一般應用於環境模型,和剛體碰撞時不會移動

  2. Rigidbody Collider(剛體碰撞器):同時附加了剛體和碰撞器。移動完全受指令碼和物理引擎的影響。

  3. Kinematic Rigidbody Collider(運動學剛體碰撞器):同時附加剛體和碰撞器,並且啟用剛體元件的IsKinematic。移動必須通過修改其Transform元件,不受力的影響。能影響其他的剛體,和其他碰撞器碰撞時不會受影響,但是會觸發碰撞函式。

  4. Character Controllers(角色控制器):允許高速運動時立刻轉身,可以執行碰撞檢測保證角色可以沿牆滑動或者上下臺階。受重力影響,不受碰撞產生的力影響,可以由程式碼施加的力推動。不具有物理特性。如果想讓角色控制器推開其他剛體或者物件,可以在物件附加的指令碼中新增OnControllerColliderHit()函式,使得碰撞生效。

觸發器:

在碰撞器的屬性面版上勾選上IsTrigger便成為了觸發器

兩者區別:碰撞器根據物理引擎引發碰撞,產生碰撞的效果;觸發器被物理引擎所忽略,沒有碰撞效果

碰撞資訊檢測函式:

  1. OnCollisionEnter(Collision collision)當開始產生碰撞時呼叫此函式

  2. OnCollisionExit(Collision collision)當結束碰撞時呼叫此函式

  3. OnCollisionStay(Collision collision)當持續接觸時呼叫此函式

觸發資訊檢測函式:

基本和碰撞資訊檢測函式類似

  1. OnTriggerEnter(Collision collision)

  2. OnTriggerExit(Collision collision)

  3. OnTriggerStay(Collision collision)

碰撞資訊和觸發資訊:

碰撞後有碰撞檢測並有碰撞資訊發出

  Static Collider 靜態碰撞器 Rigidbody Collider 剛體碰撞器 Kinematic Rigidbody Collider 運動學剛體碰撞器 Static Trigger Collider 靜態觸發碰撞器 Rigidbody Trigger Collider 剛體觸發碰撞器 Kinematic Rigidbody Trigger Collider 運動學剛體觸發碰撞器
Static Collider 靜態碰撞器   Y        
Rigidbody Collider 剛體碰撞器 Y Y Y      
Kinematic Rigidbody Collider 運動學剛體碰撞器   Y        
Static Trigger Collider 靜態觸發碰撞器            
Rigidbody Trigger Collider 剛體觸發碰撞器            
Kinematic Rigidbody Trigger Collider 運動學剛體觸發碰撞器            

 

碰撞後有觸發資訊

  Static Collider 靜態碰撞器 Rigidbody Collider 剛體碰撞器 Kinematic Rigidbody Collider 運動學剛體碰撞器 Static Trigger Collider 靜態觸發碰撞器 Rigidbody Trigger Collider 剛體觸發碰撞器 Kinematic Rigidbody Trigger Collider 運動學剛體觸發碰撞器
Static Collider 靜態碰撞器         Y Y
Rigidbody Collider 剛體碰撞器       Y Y Y
Kinematic Rigidbody Collider 運動學剛體碰撞器       Y Y Y
Static Trigger Collider 靜態觸發碰撞器   Y Y   Y Y
Rigidbody Trigger Collider 剛體觸發碰撞器 Y Y Y Y Y Y
Kinematic Rigidbody Trigger Collider 運動學剛體觸發碰撞器 Y Y Y Y Y Y