gpt4 book ai didi

unity3d - 禁用游戏对象时检测 OnTriggerExit

转载 作者:行者123 更新时间:2023-12-03 17:05:33 24 4
gpt4 key购买 nike

我面临着一个关于触发器的非常简单的问题,但我看不到任何解决方法。我只想要 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 被称为

  • OnTriggerExitTest

    显然,我想要 OnTriggerExit当我禁用我的球体时被调用。你知道任何解决方案吗?

    我正在使用 Unity 5.4.1f

    我可以在 OnDisable 中使用事件当然,我的球体的功能,但它不是很干净。我简直不明白为什么 OnTriggerExit不是叫而是 OnTriggerEnter是。

    最佳答案

    从技术上讲,Unity 没有理由无法调用 OnTriggerExit在你的场景中。然而,一个可能的原因是,“另一个”碰撞器是空的,因为它已经被销毁,如果不处理会造成很多情况。

    但是,您可以使用 OnTriggerStay 来解决它。反而。它应该在每一帧都被调用,并且第一次在你的场景中没有被调用,这可能意味着另一个对撞机被禁用。

    关于unity3d - 禁用游戏对象时检测 OnTriggerExit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41716663/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com