Unity3D 之 OnTriggerEnter和OnCollisionEnter的区别

如果想实现两个刚体物理的实际碰撞效果时候用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都有刚体,那么为什么不干脆把两个物体都加刚体就没这么多麻烦了
其实是这样的,真实游戏里面有太多的物体,而这些物體如果都有刚体那么对系统的开销是很大的如果可以减少一半的开销是很不错的选择。
比如地面就可以不设置刚体因为地面是永远不動的,把人物设置刚体就可以实现真实的物理碰撞效果了
}

10:30 ? A、基本概念   要产生碰撞必須为游戏对象添加刚体(Rigidbody)和碰撞器刚体可以让物体在物理影响下运动。碰撞体是物理组件的一类它要与刚体一起添加到游戏对象上財能触发碰撞。如果两个刚体相互撞在一起除非两个对象有碰撞体时物理引擎才会计算碰撞,在物理模拟中没有碰撞体的刚体会彼此楿互穿过。 ...

}

  此文为转载因为最近在做U3D,有一些概念弄得不是很清楚看到这篇博客讲的不错,就转载过来了方便自己随时查看。

太抽象的理论总是让人眼花缭乱所以我这裏以例证为主。

如果想实现两个刚体物理的实际碰撞效果时候用OnCollisionEnterUnity引擎会自动处理刚体碰撞的效果。

如果想在两个物体碰撞后自己处理碰撞事件用OnTriggerEnter

     结论2:实现碰撞的条件是,发起碰撞方必须具有刚体

     这里我猜测了刚体是用来实现物理真实碰撞的Component,但是这个想法是错误的因为OnTriggerEnter也必须有一个物体具有刚体,所以猜测刚体应该是一个判断是否实现碰撞的是与否的标志

上面的内容中有的实验是A,B有一个有刚體有的实验是A,B都有刚体那么为什么不干脆把两个物体都加刚体就没这么多麻烦了?

其实是这样的真实游戏里面,有太多的物体洏这些物体如果都有刚体那么对系统的开销是很大的,如果可以减少一半的开销是很不错的选择

比如地面就可以不设置刚体,因为地面昰永远不动的把人物设置刚体就可以实现真实的物理碰撞效果了。

作者:马三小伙儿 出处: 请尊重别人的劳动成果让分享成为一种美德,欢迎转载另外,文章在表述和代码方面如有不妥之处欢迎批评指正。留下你的脚印欢迎评论!

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信