【问题标题】:OnTriggerExit being called by collider not marked as trigger error UnityOnTriggerExit 被对撞机调用未标记为触发错误 Unity
【发布时间】:2018-12-26 22:04:30
【问题描述】:

我有这样的阶层:

在父级中,我有以下组件:

名为DropDetector 的孩子有一个标记为触发器的对撞机。并且名为drop_area 的孩子也有一个对撞机,但这个没有标记为触发器。但是目前我的 OntriggerEnter 和 Exit 函数正在从drop_area collider 调用,尽管它没有被标记为触发器。为什么会这样?我如何阻止它发生?

DropArea 脚本和刚体附加到名为 IncrementA_DropArea 的父级

如果需要更多信息或澄清,请告诉我,以便我澄清!

【问题讨论】:

    标签: c# unity3d triggers collider


    【解决方案1】:

    这是按预期工作的。来自MonoBehaviour.OnTriggerExit(Collider) 上的统一文档:

    此消息被发送到触发器和接触触发器的碰撞器。

    您无法避免在drop_areaMonoBehaviours 上调用它。

    但是,在MonoBehaviour.OnTriggerExit(Collider)的实现中,可以先检查被调用的MonoBehaviour的collider是否不是触发器,如果​​是则退出方法:

    public Collider myCollider;
    
    ...
    
    myCollider = GetComponent<Collider>();
    
    ...
    
    void OnTriggerExit(Collider other) 
    {
        if (!myCollider.isTrigger) 
        {
            return;
        } 
    
        // Do stuff for trigger here.
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多