unity OnTriggerEnter2D 不能重复使用

Posted

技术标签:

【中文标题】unity OnTriggerEnter2D 不能重复使用【英文标题】:Unity OnTriggerEnter2D cannot be reused 【发布时间】:2016-02-28 23:14:43 【问题描述】:

我的 OnTriggerEnter2D eventTrigger 有问题。

主要问题是在相同的对象重新进入 2D 圆形碰撞器时激活 OntriggerEnter2D。

目前我有 3 个可以交互的对象,我们称它们为 A1、A2 和 B1。 当 B1 进入 A1 时,它就起作用了。当 B1 进入 A2 时,它就起作用了。但是当 B1 重新进入 A1 时它不起作用。这也包括是否在开始时输入了 A2。

我能找到的只是统一解释: “注意:触发事件将被发送到禁用的 MonoBehaviours,以允许启用响应碰撞的行为。” (http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnTriggerEnter2D.html)

如果它只是完全停用 OnTriggerEnter2D 的触发器,是否有某种方法可以解决它以使其像“OnTriggerEnter2D”一样工作?

我知道 OnTriggerStay2D,但对我来说,这只会浪费处理能力,同时也是一个愚蠢的糟糕解决方案。

【问题讨论】:

为什么 OnTriggerStay 不是一个糟糕的解决方案? OnTriggerEnter2D 如果它们停止重叠然后再次重叠,则应为相同的 2 个对象再次触发。如果这没有发生,请转到帮助->报告错误来提交错误报告。 【参考方案1】:

取决于您所说的重新输入。如果您的对象从未完全分离,您将不会有对 OnTriggerEnter2D 的新调用。

在这种情况下,如果您希望在初始 OnTriggerEnter2D 调用后通知您的对象停留在另一个对象之上,那么 OnTriggerStay2D 是一种方法

【讨论】:

以上是关于unity OnTriggerEnter2D 不能重复使用的主要内容,如果未能解决你的问题,请参考以下文章

Unity OnTriggerEnter2D 未注册

unity ontriggerenter2d 有时不工作

Unity OnTriggerEnter2D CompareTag ||比较标签不一致

碰撞后未调用 Unity5 OnTriggerEnter2D(2D 游戏)

Unity OnTriggerEnter2d() 不工作 |尝试在场景之间切换

Unity OnTriggerEnter2D 有时不起作用