关于MonoBehaviour.OnTriggerEnter和MonoBehaviour.OnCollisionEnter

关于MonoBehaviour.OnTriggerEnter和MonoBehaviour.OnCollisionEnter

整理关于OnTriggerEnterOnCollisionEnter的触发条件

对于三个带有collider组件的gameObject A,B,C

当对象A未勾选Is Trigger,分别去碰撞BBcollider组件不勾选Is Trigger)和CCcollider组件勾选Is Trigger)时:

  • A, B,C均不带有rigidbody组件,运动状态未发生变化,OnCollisionEnterOnTriggerEnter均不会触发。
  • A带有rigidbody组件,B,C均不带有rigidbody组件的情况下:
    • AB接触时,A受到碰撞发生旋转,B未发生变化。AB脚本内OnCollisionEnter均触发,OnTriggerEnter均不会触发

    • AC接触时,AC运动状态未发生变化。AC脚本内OnCollisionEnter均未触发,OnTriggerEnter均触发

  • A,B,C均带有rigidbody组件
    • AB接触时,AB受到碰撞发生旋转。AB脚本内OnCollisionEnter均触发,OnTriggerEnter均不会触发
    • AC接触时,AC运动状态未发生变化。AC脚本内OnCollisionEnter均未触发,OnTriggerEnter均触发

A勾选Is Trigger,去碰撞CCcollider组件勾选Is Trigger)时

  • A, C均不带有rigidbody组件。接触时,运动状态未发生变化,OnCollisionEnterOnTriggerEnter均不会触发。
  • AC至少带有一个rigidbody组件。接触时,AC运动状态未发生变化。AC脚本内OnCollisionEnter均未触发,OnTriggerEnter均触发

两个collider产生碰撞的条件:至少有一collider带有rigidbody组件

若两个collider可以产生碰撞且均未勾选Is Trigger,触发OnCollisionEnter。否则触发OnTriggerEnter

posted @   ug_难  阅读(119)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示