在active = false的情况下如何找到gameobject

如下代码,我们先获取顶级对象root,接着用Find()去找它的子节点“xxxx”的对象,无论"xxxx"对象是否active = true 都是可以直接找到对象的。

GameObject root = GameObject.Find("root") ;

GameObject xxxx = root.transform.Find("xxxx").gameObject;

xxxx.SetActive(true);

Find()方法只能去找子节点,如果要找孙节点,那么用"/"符号把层级关系隔开,找起来很方便。

GameObject cube = root.transform.Find("xxxx/Cube").gameObject;


但是Transform,Find()必须要保证你的顶级父对象的active = true,也就是说如果在用到某个对象需要在一开始的时候让它的active等于false的时候,那么为了以后能用Transform.Find()的方法找到它,必须给他加个父节点,并让它的父节点的active等于true



转自MOMO大神的微博

你可能感兴趣的:(unity3D)