unity检测碰撞有两种方式
一.触发(需要勾选IsTrigger选项)
1.MonoBehaviour.OnTriggerEnter( Collider other )当进入触发器
2.MonoBehaviour.OnTriggerExit( Collider other )当退出触发器
3.MonoBehaviour.OnTriggerStay( Collider other )当逗留触发器
二.碰撞
1.MonoBehaviour.OnCollisionEnter( Collision collisionInfo ) 当进入碰撞器
2.MonoBehaviour.OnCollisionExit( Collision collisionInfo ) 当退出碰撞器
3.MonoBehaviour.OnCollisionStay( Collision collisionInfo ) 当逗留碰撞器
当然,要发生碰撞,两个物体都添加碰撞器,其中一个还要有刚体。这些是基本,下面来说下它们之间的区别
我在刚开始使用的时候,出现了一两次错误,我觉得这是新手应该都比较容易犯的,
问题就出在这两种检测方式的名称和参数都不同
勾选IsTrigger时,方法名OnTrigger开头,参数类型为Collider
不勾选时,方法名OnCollision开头,参数类型为Collision
参数弄错时,碰撞发生了也不会有碰撞信息