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遇到的不触发问题

你可能感兴趣的:(unity)