Unity3d GameObject.FindGameObjectWithTag返回(克隆)?
我有这个问题,当我使用Unity3d GameObject.FindGameObjectWithTag返回(克隆)?,unity3d,tags,gameobject,animator,Unity3d,Tags,Gameobject,Animator,我有这个问题,当我使用 GameObject.FindGameObjectWithTag("red"); 它始于我在游戏对象中添加了一个动画组件 它回来了 red(Clone) 当游戏对象作为标记为“红色”的唯一游戏对象处于继承权中时 它只发生在我添加了animator组件之后,当我退出unity并重新启动unity时,问题消失了,我得到的错误是 MissingComponentException:“红色(克隆)”游戏对象没有“Rigidbody2D”,但脚本正在尝试访问它 场景中有一个红色
GameObject.FindGameObjectWithTag("red");
它始于我在游戏对象中添加了一个动画组件
它回来了
red(Clone)
当游戏对象作为标记为“红色”的唯一游戏对象处于继承权中时
它只发生在我添加了animator组件之后,当我退出unity并重新启动unity时,问题消失了,我得到的错误是
MissingComponentException:“红色(克隆)”游戏对象没有“Rigidbody2D”,但脚本正在尝试访问它
场景中有一个红色不是红色(克隆),而是我使用GameObject时在inspector中看到的。FindGameObjectWithTag(“红色”)它找到了红色(克隆),但场景中没有红色(克隆),只是红色,这发生在我添加了一个animator组件后,当我重新启动Unity时停止了,它可能是一个bug,只是想在这里检查id
编辑
正如我所说,场景中有一个红色,也有一个刚体,只是没有红色(克隆),谢谢你的时间这似乎是unity中一个长期运行的bug,可以追溯到4.3。希望能在unity 5中修复 似乎animator窗口出于某种原因导致克隆,而克隆是不可移动的 迄今为止,只有两种方法可以绕过这个问题
- 如果尚未保存场景,请关闭animator窗口,关闭unity并重新启动unity。这将使您摆脱该对象李>
- 使用另一个标签代替,因此使用红色代替红色
- 在使用克隆之前查找并销毁克隆:
GameObject[] remaining = GameObject.FindGameObjectsWithTag(Tags.player); foreach (GameObject clone in remaining) { if(clone.name == "Player_Aleysha(Clone)"){ GameObject.Destroy(clone); }