将字符串转换为非活动的游戏对象

时间:2019-06-25 09:34:04

标签: c# unity3d game-development

我有一个不活动的GameObject,即emptyShape1,我创建了一个返回字符串的函数,即emptyShape1。

我尝试使用强制转换将该字符串转换为GameObject

(GameObject)emptyShape1 

这样我可以激活emptyShape1 GameObject,但是它给我一个错误提示

  

无法将字符串转换为Unity.GameObject

我尝试使用GameObject.Find(emptyShape1),但它也给我一个错误提示

  

对象引用未设置为对象的实例

找到emptyShape1字符串或将其转换为GameObject的有效方法是什么?

2 个答案:

答案 0 :(得分:0)

编辑:我误会了,您想找到一个具有特定名称的非活动GameObject。我认为您不能使用GameObject.Find来做到这一点,如果您有其父对象,就可以找到它。

parent.transform.Find("emptyShape1");

旧答案:

如何创建具有特定名称的GameObject并将其禁用:

GameObject emptyGameObject = new GameObject(enemyShape1);
emptyGameObject.setActive(false);

答案 1 :(得分:-1)

您可以找到所有带有Resources.FindObjectsOfTypeAll<SomeType>();并返回一个数组的对象,然后查找具有名称的对象-但这是一个昂贵的调用。不能更改您的代码以保留要回调的禁用项目列表吗?