在unity3d中按标签查找不活动的gameobject
我有一个游戏对象,我想在一定条件下激活它。 我给它一个唯一的标签,我尝试使用GameObject.FindObjectWithTag("Tag name").
据我所知,这种方法只能在场景中找到活动的游戏对象而不是非活动的游戏对象。
有没有一种我可以调用的方法,它也可以搜索不活跃的游戏对象? (最好用标签搜索)。
谢谢!
经过一些研究后,似乎无法通过标签找到不活跃的游戏对象。
但是,存在访问非活动游戏对象的解决方案:
1 – 如果您需要在之后重新激活它们,则将非活动游戏对象存储在数组中(仅适用于在运行时停用的游戏对象)。
2 – 不要停用游戏对象,只需停用您想要处于非活动状态的组件即可。 如果要使对象消失,请取消激活渲染器。 如果是特定脚本,请停用该脚本等。
此解决方案将允许您仍然通过其标记名称查找游戏对象。
可以找到不活动的gameObjects
:
transform.Find() or transform.FindChild() transform.GetComponentsInChildren(true) Resources.FindObjectsOfTypeAll ()
更多细节。
FindObjectsOfTypeAll确实发现不活动,它也可能找到预制件和你不想要的东西,所以你必须要小心。