我有一个游戏对象,在游戏开始时被禁用。然后我想稍后通过脚本启用它。到目前为止,我已尝试使用以下代码:
GameObject.Find("name").SetActive (true);
问题在于,当我做
时,开头的游戏对象被禁用GameObject.Find("name")
我得到了空。所以我不知道如何激活它。它是画布。
答案 0 :(得分:7)
您可以在脚本中创建一个类变量,然后在Unity场景编辑器中将禁用的对象分配给该类变量。
例如:
在脚本文件中,创建类变量:
public GameObject objectToEnable;
然后,在场景编辑器中,“objectToEnable”变量将出现在包含脚本的对象的Script组件中。只需将禁用的对象拖动到该变量(在场景编辑器中)即可设置参考。
一旦你这样做,在运行时你就可以做到:
objectToEnable.SetActive(true);
即使禁用了该对象,该引用仍应有效。
答案 1 :(得分:1)
您可以先将对象保存在变量中,例如,首先声明一个将保存对象的变量
GameObject tempVar; //this line goes outside any function, not in Start or Update
然后在“开始”或“唤醒”功能中找到对象并保存
tempVar = GameObject.Find("name"); // this line goes in Start, just before you disable the object tempVar.SetActive(false); //now the object is disabled but saved in a variable with which you can access it at any time
当然,此代码假定在游戏开始之前未禁用该对象。