如果想实现两个刚体物理的实际碰撞效果时候用OnCollisionEnterUnity引擎会自动处理刚体碰撞的效果。
如果想在两个物体碰撞后自己处理碰撞事件用OnTriggerEnter
现在我们就可以分两种模式来分析了,就是OnTrigger模式和OnCollision模式因为上面已经详细介绍了两者是对立的模式, 测试1:如果只有A有刚体(Rigidbody)那么当A去碰撞B时,发现A弹开B没有动A和B都進入OnCollisionEnter方法 结论1:只有刚体能实现真实的物理碰撞。 测试2:如果只有A有刚体(Rigidbody)那么当B去碰撞A时,发现没有碰撞效果A和B都没有进入OnCollisionEnter方法。 结论2:实现碰撞的条件是发起碰撞方必须具有刚体。 这里我猜测了刚体是用来实现物理真实碰撞的Component但是这个想法是错误的,因为OnTriggerEnter也必须有一个物体具有刚体所以猜测刚体应该是一个判断是否实现碰撞的是与否的标志。
上面的内容中有的实验是AB有一个有刚体,有的實验是AB都有刚体,那么为什么不干脆把两个物体都加刚体就没这么多麻烦了
其实是这样的,真实游戏里面有太多的物体,而这些物體如果都有刚体那么对系统的开销是很大的如果可以减少一半的开销是很不错的选择。
比如地面就可以不设置刚体因为地面是永远不動的,把人物设置刚体就可以实现真实的物理碰撞效果了