碰撞器和触发器的使用

对于OnTriggerxxx和OnCollisionxxx消息,有不同的使用方法。
OnTriggerEnter和OnCollisionEnter 当两个物体刚开始接触时发生,且只调用一次。
OnTriggerStay和OnCollisionStay 当两个物体保持接触时发生,且每帧都会调用。
OnTriggerExit和OnCollisionExit 当两个物体分离时发生,且只调用一次。

A,B两个物体。A向B移动,B保持静止。
在这里插入图片描述
(1)当物体A中无RigidBody时,无论物体B有没有RigidBody,A都会穿过B,且A和B中的OnTriggerxxx和OnCollisionxxx方法都不会发生。(所以,若使两个方法都发生,必须使移动的物体A含有RigidBody组件)
(2)若A含有RigidBody和Collider,B只含有Collider,则A和B中的OnCollisionEnter和OnCollisionStay会发生,OnTriggerxxx都不会发生。若其中一个含有isTrigger,则A和B中OnTriggerxxx都会发生,但OnCollisionxxx都不会发生。
在这里插入图片描述
(3)若A含有RigidBody和Collider,B只含有Collider,A和B会放生弹性碰撞。若其中一个含有isTrigger时,A将穿越B。

例:
脚本A
在这里插入图片描述
脚本B
在这里插入图片描述

物体A和物体B发生弹性碰撞时,产生如下结果。
在这里插入图片描述
其他情况,请读者自行练习。小编第一次发表文章,如有雷同,纯属巧合。如有瑕疵,请指出。谢谢配合!

猜你喜欢

转载自blog.csdn.net/qq_44810574/article/details/88774887