Unity场景中通常有许多隐藏物体,我们需要获取它并且SetActive(true)。
例如,想要使BBB显示出来。通过GameObject.Find(“BBB”),得到一个空指针。
解决方法有两个:
1.Editor赋值
在脚本中声明共有变量GameObject,编辑器中直接拖拽赋值,然后SetActive(“true”)。
这种方法可行,但是灵活性太差。如果GameObject不确定,则实现不了。
2.Transform.Find()查找隐藏物体
GameObject parentObj = GameObject.Find("AAA");
GameObject bbb = parentObj.transform.Find("BBB").gameObject;
bbb.SetActive(true);
使用这种方法,即使BBB物体是隐藏也能获取到,非常方便。
但是必须有个前提,AAA的Active必须为true。