网站设计优秀作品,网站开发的背景知识,asp网站怎么下载源码,昆明小程序定制参考资料 cUnity中使用GameObject.Find、Transform.Find查找GameObject_思月行云的博客-CSDN博客
GameObject.Find 通过名字或路径查找游戏对象。
GameObject.Find(GameObject);
GameObject.Find(GameObject/ChildGameObject);
使用规范: 1.无法查找隐藏…参考资料 cUnity中使用GameObject.Find、Transform.Find查找GameObject_思月行云的博客-CSDN博客
GameObject.Find 通过名字或路径查找游戏对象。
GameObject.Find(GameObject);
GameObject.Find(GameObject/ChildGameObject);
使用规范: 1.无法查找隐藏对象 隐藏对象包括查找路径的任何一个父节点隐藏(activefalse)
2.如果查找不在最上层建议合理使用路径查找路径查找是把双刃剑
优点1:解决查找中可能出现的重名问题。 优点2:如果有完全的路径减少查找范围减少查找时间。
缺点: 路径或结构调整后容易影响到程序中的查找需要重新定位查找路径。
3.如果路径查找中的任何一个父节点activefalse这个对象都将查找不到。
4.使用方便但效率低下 此查找相当于递归遍历查找虽使用方便但效率堪忧建议在Start()函数中查找对象并保存引用切忌在Update()中动态查找。
Transform.Find
1.可以查找隐藏对象 2.支持路径查找 3.查找隐藏对象的前提是transform所在的根节点必须可见即activetrue
GameObject root GameObject.Find(root);
root.SetActive(false); // 根节点为空
// 总是查找失败
root.transform.Find(root/AnyChildObjectName);
实际开发: 实际开发中会将功能预制体放到一个可见的GameObject目录下将这个GameObject目录作为查找根节点下面的所有对象(隐藏、非隐藏都可以查找到。
你可以把”map”节点放在一个active true的MapRoot上无论是关闭 或者 显示 代码中写起来都很方便。 假如你的map节点就是顶级节点那么它一旦天生acive false 那么你将无法得到它的对象更无法设置它的属性了。
GameObject root GameObject.Find(MapRoot);
GameObject map root.transform.Find(map).gameObject;
map.SetActive(true);