【发布时间】:2017-01-18 10:16:21
【问题描述】:
我面临一个关于触发器的非常简单的问题,但我没有找到任何解决方法。我只想在 触发器内 的对象被禁用时调用 OnTriggerExit 函数。
这是在空场景中重现问题的方法:
-
在 (0,0,0) 处创建一个立方体,并使用对撞机作为触发器和非常简单的以下脚本:
public class OnTriggerExitTest : MonoBehaviour { private void OnTriggerExit( Collider other ) { Debug.Log( "Exiting : " + other.name ); } private void OnTriggerEnter( Collider other ) { Debug.Log( "Entering : " + other.name ); } } 在 (0,0,0) 处创建一个球体,其中包含一个球体碰撞器和一个不使用重力的刚体
将球体移出框,
OnTriggerExit被调用将球体移回 (0,0,0),
OnTriggerEnter被调用禁用球体,
OnTriggerExit不调用启用回球,
OnTriggerEnter被调用
显然,我希望在禁用球体时调用OnTriggerExit。你知道有什么解决办法吗?
我正在使用 Unity 5.4.1f
当然,我可以在我的球体的OnDisable 函数中使用事件,但它不是很干净。我只是不明白为什么不调用OnTriggerExit 而调用OnTriggerEnter。
【问题讨论】:
标签: unity3d game-physics