1.Collider.OnCollisionEnter(Collision) 進入碰撞
當collider/rigidbody與另一個collider/rigidbody碰撞接觸時被調用。Collison類包含接觸點,碰撞速度等信息。在這個函數如果你不使用collisionInfo,刪去collisionInfo參數以避免不必要的計算。注意,如果碰撞器附加一個非動力學剛體,也僅發送碰撞事件。
2. Collider.OnTriggerEnter (Collider) 當進入觸發器
當Collider(碰撞體)進入trigger(觸發器)時被調用。這個消息被髮送到觸發器碰撞體和剛體(或者碰撞體假設沒有剛體)。注意如果碰撞體附加了一個剛體,也只發送觸發器事件。
對於這兩種碰撞理解:
第一種碰撞是碰撞器或者剛體碰撞,第二種是觸發器碰撞。第二種的碰撞是可以穿透觸發器一方的,不論觸發器一方是否有剛體屬性。
3.MonoBehaviour.OnControllerColliderHit (ControllerColliderHit) 當控制碰撞器碰撞
在移動的時,當controller碰撞到collider時OnControllerColliderHit被調用。
4.static bool Physics.Raycast(Vector3 origin, Vector3 direction , (override) RaycastHit hitInfo, float distance = Mathf.Infinity, int layerMask = kDefaultRaycastLayers) 光線投射
在場景中投下可與所有碰撞器碰撞的一條光線。
Parameters參數
-
origin在世界座標,射線的起始點。
-
direction射線的方向。
-
(override) hitInfo
(重載參數) 如果函數返回true,hitInfo將包含碰到器碰撞的更多信息。 -
distance射線的長度。
-
layerMask只選定Layermask層內的碰撞器,其它層內碰撞器忽略。
當光線投射與任何碰撞器交叉時爲真,否則爲假。