Unity3D學習筆記之碰撞器和觸發器
碰撞器種類:
-
-
Sphere Collider(球碰撞器)——球體
-
Capsule Collider(膠囊碰撞器)——膠囊體
-
Mesh Collider(網格碰撞器)——從物體的網格建立一個碰撞器,不能與其他網格碰撞器相碰撞
-
Wheel Collider(輪碰撞器)——特殊的碰撞器,用於建立車或其他的交通工具的車輪
碰撞器屬性:
-
Material:材質
-
Is Trigger:開啟觸發器
-
Radius:半徑
-
Center:中心
-
Size:碰撞器的大小
-
Convex(網格碰撞器特有):如啟用,該網格碰撞器將會和其他網格碰撞器碰撞,突起的網格碰撞器限制在255個三角形面內。
碰撞器型別:
-
Static Collider(靜態碰撞器):只有碰撞器,沒有剛體。基本保持靜止或者輕微的移動,一般應用於環境模型,和剛體碰撞時不會移動
-
Rigidbody Collider(剛體碰撞器):同時附加了剛體和碰撞器。移動完全受指令碼和物理引擎的影響。
-
Kinematic Rigidbody Collider(運動學剛體碰撞器):同時附加剛體和碰撞器,並且啟用剛體元件的IsKinematic。移動必須通過修改其Transform元件,不受力的影響。能影響其他的剛體,和其他碰撞器碰撞時不會受影響,但是會觸發碰撞函式。
-
Character Controllers(角色控制器):允許高速運動時立刻轉身,可以執行碰撞檢測保證角色可以沿牆滑動或者上下臺階。受重力影響,不受碰撞產生的力影響,可以由程式碼施加的力推動。不具有物理特性。如果想讓角色控制器推開其他剛體或者物件,可以在物件附加的指令碼中新增OnControllerColliderHit()函式,使得碰撞生效。
觸發器:
在碰撞器的屬性面版上勾選上IsTrigger便成為了觸發器
兩者區別:碰撞器根據物理引擎引發碰撞,產生碰撞的效果;觸發器被物理引擎所忽略,沒有碰撞效果
碰撞資訊檢測函式:
-
OnCollisionEnter(Collision collision)當開始產生碰撞時呼叫此函式
-
OnCollisionExit(Collision collision)當結束碰撞時呼叫此函式
-
OnCollisionStay(Collision collision)當持續接觸時呼叫此函式
觸發資訊檢測函式:
基本和碰撞資訊檢測函式類似
-
OnTriggerEnter(Collision collision)
-
OnTriggerExit(Collision collision)
-
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 |