Unity3D - GameObject.Find()为禁用的对象返回null

nix*_*x86 1 unity-game-engine

我有一个游戏对象,在游戏开始时被禁用.然后我想稍后通过脚本启用它.到目前为止,我已尝试使用以下代码:

GameObject.Find("name").SetActive (true);
Run Code Online (Sandbox Code Playgroud)

问题在于,当我这样做时,开始时的游戏对象被禁用

GameObject.Find("name")
Run Code Online (Sandbox Code Playgroud)

我得到了.所以我不知道如何激活它.这是一块画布.

Cod*_*ger 7

您可以在脚本中创建一个类变量,然后在Unity场景编辑器中将禁用的对象分配给该类变量.

例如:

在脚本文件中,创建类变量:

public GameObject objectToEnable;
Run Code Online (Sandbox Code Playgroud)

然后,在场景编辑器中,"objectToEnable"变量将出现在包含脚本的对象的Script组件上.只需将禁用的对象拖动到该变量(在场景编辑器中)即可设置参考.

一旦你这样做,在运行时你可以这样做:

objectToEnable.SetActive(true);
Run Code Online (Sandbox Code Playgroud)

即使禁用了对象,引用仍应有效.