unity碰撞检测(碰撞器,触发器)

Unity中的碰撞检测主要由两个组件完成

  • 刚体Rigidbody
  • 碰撞体Collider
    碰撞的必要条件
  • 发生碰撞的两个物体至少有一个带有Rigidbody组件,即刚体
  • 发生碰撞的两个物体都必须带有碰撞器组件
  • 持续碰撞的回调方法需要有相对运动才有调起
  • 注意:如果带有刚体的物体不发生运动,刚体会处于休眠状态,系统不会进行碰撞检测的,如果带有刚体的物体运动,刚体会一直处于活动状态,碰撞检测才会进行。
    碰撞器的回调方法
  • OnCollisionEnter(Collision other) 碰撞开始一瞬间被调用
  • OnCollisionStay(Collision other)一直保持碰撞状态时被调用
  • OnCollisionExit(Collision other)碰撞分离的一瞬间被调用

Unity中的触发器

当勾选Is Trigger时,成为触发器
如果是碰撞器,两个物体之间是不能够穿透的,勾选Is Trigger之后,触发器是可以穿透的
触发器检测发生的条件:

  • 两个物体都需要有碰撞器
  • 至少有一个物体是挂载刚体
  • 其中一个勾选Is Trigger

触发器的回调方法:

  • OnTriggerEnter(Collider other)当进入触发器时调用一次
  • OnTriggerStay(Collider other)处于某个触发器中的时候持续调用
  • OnTriggerExit(Collider other)退出触发器的时候调用一次


    image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。