4

我有这个问题,当我使用它时

GameObject.FindGameObjectWithTag("red");

当我将动画组件添加到游戏对象时,它就开始了

它的回归

red(Clone)

当游戏对象在层次结构中作为唯一带有“红色”标签的游戏​​对象时,它只发生在我添加动画组件之后,当我退出统一并重新启动统一时,问题就消失了,我得到的错误是

MissingComponentException:没有“Rigidbody2D”附加到“红色(克隆)”游戏对象,但脚本正在尝试访问它。

场景中有红色不是红色(克隆),但我在检查器中看到当我使用 GameObject.FindGameObjectWithTag("red") 它发现红色(克隆)但场景中没有红色(克隆)只是红色,它发生在我添加了一个动画组件并在我重新启动 Unity 时停止,它肯定是一个错误,只是想在这里检查 id

编辑 我所说的场景中有一个红色还有一个 RigidBody2d 附加到它,只是不存在红色(克隆),谢谢你的时间

4

1 回答 1

4

这似乎是一个长期存在的统一错误,可以追溯到 4.3。希望将在统一 5 中修复

似乎动画窗口由于某种原因导致克隆,这是不可移除的。

迄今为止,只有两种方法可以绕过此问题

  • 如果您还没有保存场景,请关闭动画窗口,关闭 unity 并重新启动 unity。这应该摆脱你的对象。

如果您已经保存了场景

  • 请改用另一个标签,因此请不要使用红色,而是使用Red

一般建议,只要 bug 正在运行,就尽量避免使用 FindGameObjectWithTag。因为不能保证稳定性。

处理此问题的其他一些不太理想的方法:

  • 在使用之前找到并销毁克隆:

    GameObject[] remaining = GameObject.FindGameObjectsWithTag(Tags.player);
    foreach (GameObject clone in remaining) {
    if(clone.name == "Player_Aleysha(Clone)"){
          GameObject.Destroy(clone);
    }
    
于 2015-01-16T09:54:26.177 回答