Unity刚体之碰撞接触

OnTrigger和OnCollision的区别

1.想要让程序判断两个物体又接触,则两个物体都必须要有Collider,并且运动的物体必须要有刚体,才会发生碰撞。如果运动的物体没有刚体,也视为没有碰撞。

2.Collision碰撞:会发生物理碰撞,双方都有碰撞体(Collider),至少有一个物体有rigidbody,会触发OnCollision事件。若双方都勾选了Kinematic或者其中一个物体勾选了Trigger,则碰撞无效。

Trigger触发:不会发生物理碰撞,双方都有碰撞体(Collider),至少有一个物体有rigidbody,且至少有一个物体勾选了Trigger,会触发OnTrigger事件。
不可能同时发生碰撞与触发。

3.Collision与Trigger接触事件都有三种
Trigger:OnTriggerEnter,OnTriggerStay,OnTriggerExit

Collision:OnCollisionEnter,OnCollisionStay,OnCollisionExit

Enter事件表示两个物体接触瞬间,会执行一次事件。
Stay事件表示两个物体一直接触,会持续执行这个事件。
Exit事件表示两个物体分开瞬间,会执行一次事件。

5.Rigidbody刚体:加了碰撞体的物体会受到重力而落下,受物理作用力推动或旋转,无法穿越其他碰撞体。如果另一个物体没有刚体,与一个有刚体的物体相撞会穿过有刚体的物体,但是会判断有发生碰撞。

6.IsKinematicc运动学:自身不会受到碰撞,但是会对其他物体造成碰撞,不会受到重力等物理作用力的影响。
双方都勾选了运动学时,双方不会发生碰撞,会直接穿透,无法执行OnCollision事件。

7.Constraints限制:自身受到碰撞时,勾选的position,Rotasion不受力。

8.Drag空气阻力:提高该数值会减少下落速度与被撞飞的距离。

此篇摘抄于凜喵的博客_CSDN博客-领域博主

猜你喜欢

转载自blog.csdn.net/qq_56897801/article/details/129893540
今日推荐