collision

更新时间:2022-11-25 19:33:18 阅读: 评论:0


2022年11月25日发(作者:园林景观设计学习)

Unity3D的OnTriggerEnter和OnCollisionEnter⽅法

两个物体都有碰撞体和刚体时:

情况1:当物体A勾选了isTrigger,则触发了OnTriggerEnter⽅法.

情况2:当A,B两个物体都勾选了isTrigger,则触发了OnTriggerEnter⽅法.

情况3:当A,B两个物体都没有勾选isTrigger,则触发了OnCollisionEnter⽅法

结论1:如果发⽣了OnTriggerEnter⽅法,⾄少有⼀个物体勾选了isTrigger;如果想发⽣OnCollisionEnter⽅法,则不需要勾选

isTrigger。

结论2:OnTriggerEnter和OnCollisionEnter冲突,不能同时发⽣。

来⾃官⽅的表格:

当A,B有⼀个添加了刚体(Rigidbody)时:

OnCollisionEnter⽅法:

若A添加了刚体,B没有添加刚体,A去碰撞B,则A会被弹开,B不会运动,此时A、B都会触发OnCollisionEnter⽅法。

若A添加了刚体,B没有添加刚体,B去碰撞A,不会发⽣碰撞效果,此时A和B都不会触发OnCollisionEnter⽅法。

OnTriggerEnter⽅法:

只要A和B中有⼀个添加了刚体,⽆论谁碰撞谁,两者都会触发OnTriggerEnter⽅法。但由于⾄少⼀⽅勾选了isTrigger,所以不会发⽣碰

撞效果。

总结:

OnCollisionEnter⽅法要求碰撞的发起⽅必须拥有刚体,⽽被碰撞⽅有没有刚体并不重要。OnTriggerEnter⽅法则对此没有要求,只需要

碰撞双⽅有⼀个具有刚体即可触发。即刚体是⼀个判断是否实现碰撞的是与否的标志。

刚体对于系统的开销是很⼤的,所以在使⽤刚体时,根据可能发⽣的碰撞触发事件,适当的减少刚体,是⼀个减少资源消耗的好办法。⽐

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

OnTriggerEnter和OnCollisionEnter的选择:

如果想实现两个刚体物理的实际碰撞效果时候⽤OnCollisionEnter,Unity引擎会⾃动处理刚体碰撞的效果。

如果想在两个物体碰撞后⾃⼰处理碰撞事件⽤OnTriggerEnter。

本文发布于:2022-11-25 19:33:18,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/20411.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

下一篇:横亘
标签:collision
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图