GameObject.Find
Transform.Find
1.GameObject.Find
通过名字(递归)或路径查找物体对象,直到查找到第一个符合条件的GameObject或者返回null
GameObject.Find("GameObject");
GameObject.Find("GameObject/ChildGameObject");
优点:(1)解决查找中可能存在的重名问题
(2)如果有完全路径,可以减少查找范围,减少查找时间
缺点:(1)不能查找隐藏对象,只能查找active == true的物体;
(2)隐藏对象包括查找路径的任何一个父节点隐藏,即父节点被隐藏,那么子物体 (active == true)也不会被查找到
(3)递归查找,方便但是效率低
2.Transform.Find
可以查找隐藏对象
支持路径查找
查找隐藏对象的前提是Transform所在的根节点必须可见(即active == true)
GameObject root = GameObject.Find("root");
root.transform.Find("root/GameObject");
还有一些其他的查找方式:
GameObject.GetComponentsInChildren
以递归的方式在子物体上搜索组件,它包含GameObject的子物体以及后续的所有子物体的子物体
GameObject.GetComponentsInChildren<组件>();
实际开发:
实际开发中会将功能预制体放到一个可见的GameObject目录下,将这个GameObject目录作为查找根节点,下面的所有对象(隐藏、非隐藏)都可以查找到。
参考来源:https://blog.csdn.net/gongfu_li/article/details/48317883