OnTrigerXXX、OnCollisionXXX
A为主动体,B为被动体。
OnTrigerEnter或OnCollisionEnter会在A刚开始接触B时调用,且在A、B分离前只被调用一次。
OnTrigerStay或OnCollisionStay会在A和B保持接触状态时被调用,且在、AB分离前的每一帧调用。
OnTriggerExit或OnCollisionExit会在A、B刚分离时被调用,且只调用一次。
当符合OnTriggerXXX静态方法激活条件时,A不可穿越B,发生弹性碰撞。
当符合OnCollisionXXX静态方法激活条件时,A会穿越B,运动状态互不影响。
要激活OnTrigerXXX、OnCollisionXXX方法,移动的物体必须有rigidBody组件。
当A中无RIgidBody组件时,A会穿越B,并且OnTrigerXXX、OnCollisionXXX方法不会被调用。
当A中有RigidBody组件时,B中含有Collider组件,且A与B的Collider组件中的isTrigger未被选中时,OnCollisionXXX方法会被调用。
当A中有RigidBody组件时,B中含有COllider组件,且A与B的COllider组件中的isTrigger至少有一个被选中,OnTriggerXXX方法会被调用。
如果想实现两个刚体物理的实际碰撞效果时候用OnCollisionEnter,Unity引擎会自动处理刚体碰撞的效果。
如果想在两个物体碰撞后自己处理碰撞事件用OnTriggerEnter。
网友评论