Unity3D 中使用OnTiggerEnter遇到的不触发问题

移动GameObject,绑定BoxCollider,Istrigger选中。

固定GameObject,绑定BoxCollider,刚体属性,IsKinematic选中。

此种情况下,移动GameObject中的OnTriggerEnter()很多时候都无法被触发。

 

移动GameObject,绑定BoxCollider,刚体属性,IsKinematic选中。

固定GameObject,绑定BoxCollider,Istrigger选中。

此种情况下,固定GameObject中的OnTriggerEnter()能稳定触发。

 

另外在游戏帧率太低的情况下,OnTriggerEnter()可能不会被触发,没经过测试,只是可能。

 

更新:

当IsKinematic选中时,刚体会进入休眠状态。

rigidbody.IsSleeping()返回值为true。

对于前面的第一种情况。固定的GameObject的刚体属性中,IsKinematic 不选中。

在Update函数中持续调用 rigidbody.WakeUp();

可以使移动的GameObject中的Collider的Tigger响应(移动物体无刚体属性)。

为了使固定的GameObject在IsKinematic在不选中的情况下保持静止,勾选rigidbody下的Freeze Position 和 Freeze Rotation

 

原文链接:http://blog.sina.com.cn/s/blog_aa2a90440101ia9p.html

声明: 本文由( liuxiaoni )原创编译,转载请保留链接: Unity3D 中使用OnTiggerEnter遇到的不触发问题

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值