场景:
在 Unity 中,物理碰撞检测和触发器碰撞检测是两种不同的机制。
物理碰撞检测
物理碰撞检测是指两个物体之间发生了物理碰撞,例如两个物体相撞或者一个物体撞上了墙壁等等。当两个物体发生物理碰撞时,它们会受到物理引擎的计算和影响,例如产生反弹力、摩擦力、惯性等等。在 Unity 中,物理碰撞检测是通过给物体添加 Collider 组件来实现的。当两个具有 Collider 组件的物体发生碰撞时,它们会触发 OnCollisionEnter、OnCollisionStay 和 OnCollisionExit 等碰撞事件。
触发器碰撞检测
触发器碰撞检测是指一个物体进入了另一个物体的触发器区域,或者离开了触发器区域。触发器是一种不会产生物理碰撞的物体,但是它们可以检测到其他物体进入或离开它们的区域,并触发相应的事件。在 Unity 中,触发器碰撞检测是通过给物体添加 Collider 组件并勾选 IsTrigger 属性来实现的。当一个物体进入或离开触发器区域时,它会触发 OnTriggerEnter、OnTriggerStay 和 OnTriggerExit 等触发器事件。
对比
1:Collision碰撞
(1):双方都有碰撞体
(2):运动的一方必须有刚体
(3):双方不可同时勾选Kinematic运动学。
(4):双方都不可勾选Trigger触发器。
2:Trigger触发
(1):双方都有碰撞体
(2):运动的一方必须是刚体
(3):至少一方勾选Trigger触发器