我遇到了这个问题,当我使用它时
GameObject.FindGameObjectWithTag("red");
当我向游戏对象添加动画组件时,它就开始了
它回来了
red(Clone)
当游戏对象在层次结构中作为唯一带有“红色”标签的游戏对象时 它只发生在我添加动画组件之后,当我退出 Unity 并重新启动 Unity 时,问题就消失了,我得到的错误是
MissingComponentException:“红色(克隆)”游戏对象没有附加“Rigidbody2D”,但脚本正在尝试访问它。
场景中有红色,不是红色(克隆),但当我使用 GameObject.FindGameObjectWithTag("red") 时,我在检查器中看到它找到了红色(克隆),但没有红色(克隆),只是红色场景,它发生在我添加了一个动画器组件之后,并在我重新启动 Unity 时停止,它一定是一个错误,只是想在这里检查 id
编辑 正如我所说,场景中有一个红色,它也附加了一个 RigidBody2d,只是不存在红色(克隆),谢谢您的时间
最佳答案
这似乎是 Unity 中一个长期存在的错误,可以追溯到 4.3。希望能够在 unity 5 中得到修复
似乎动画器窗口由于某种原因导致克隆,并且不可删除。
迄今为止,只有两种方法可以绕过此问题
- 如果您尚未保存场景,请关闭动画器窗口,关闭 Unity 并重新启动 Unity。这应该可以让你摆脱这个物体。
如果您已经保存了场景
- 请使用另一个标签,因此不要使用 red,而是使用 Red。
一般建议,只要 bug 正在运行,请尽量避免使用 FindGameObjectWithTag。因为稳定性得不到保证。
处理此问题的其他一些不太理想的方法:
在使用克隆之前找到并销毁它:
GameObject[] remaining = GameObject.FindGameObjectsWithTag(Tags.player); foreach (GameObject clone in remaining) { if(clone.name == "Player_Aleysha(Clone)"){ GameObject.Destroy(clone); }
关于unity-game-engine - GameObject.FindGameObjectWithTag 返回(克隆)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27980776/