美文网首页
Unity碰撞检测

Unity碰撞检测

作者: 4d2b023a0b14 | 来源:发表于2018-03-03 13:34 被阅读22次

    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。

    相关文章

      网友评论

          本文标题:Unity碰撞检测

          本文链接:https://www.haomeiwen.com/subject/pnutfftx.html