当对象变为禁用时,OnTriggerExit事件丢失

时间:2018-03-06 05:21:49

标签: c# unity3d

我正在停止使用 OnTriggerEnter 与汽车对撞机撞击的电车动画,并在 TriggerExit 上再次启动电车动画。它工作正常,但问题是当我的汽车对象变为禁用时,OnTriggerExit事件缺失/跳过。喜欢

  • 电车撞上汽车并停止(OnTriggerEnter已执行)
  • 汽车对象变为禁用(错过OnTriggerExit)

现在,你会问为什么汽车对象会被禁用?答案是汽车对象在相机周围产生,如果我将相机移动到某个地方,它将在该位置产生汽车对象,它将从之前的位置删除汽车(记住汽车产卵系统是第三方系统,我无法改变它,它是dll)。

1 个答案:

答案 0 :(得分:1)

如果汽车被禁用,您将无法获得OnTriggerExit事件

你能做的是:

  • 如果您对汽车对象有足够的控制权(甚至难以使用dll):将汽车放在儿童物体中。汽车父母有对撞机,没有禁用。只有具有汽车视觉的子对象才会被禁用。然后你就可以参加活动了

  • 如果第一个解决方案不适合您,您还可以向汽车添加一个脚本,以便在调用OnDisable时触发事件。如果您可以在不希望触发事件的其他情况下禁用汽车,这可能会更复杂