[Unity学习教程] Unity查找物体方法的详细对比

[复制链接]
查看1154 | 回复0 | 2023-8-23 11:51:03 | 显示全部楼层 |阅读模式 来自 中国北京
1.GameObject.Find():
优点:这种方法应用比力方便,可以直接在Hierarchy窗口有物体中查找指定名称的物体,返回第一个没有被隐藏的物体;不消担心重名问题。
缺点:如果对应名称的物体被隐藏了,会出现空引用报错。并且此方法是对全局举行查找比力消耗性能
2.transform.Find():
优点:这种方法可以直接查找根节点在Hierarchy窗口中子物体,可以查找被隐藏的物体,受限比力小
缺点:根节点不能被隐藏,誊写不方便,要写入完成路径
3.transform.GetChild():
优点:这种方法可以直接查找根节点在Hierarchy窗口中指定索引的物体,可以查找被隐藏的物体,根节点也可以隐藏,受限更小较小,相比transform.Find()誊写,在查找层级比力少的情况下写代码也方便
缺点:在后续的开辟中如果改变子物体的次序会导致查找错误
4.FindGameObjectWithTag和FindGameObjectsWithTag:
对比:FindGameObjectWithTag从上往下查找对应标签的第一个物体,FindGameObjectsWithTag返回一个数组,全部该标签的物体都在那此中(没有被隐藏的)
优点:该方法是通过标签查找,在物体数量比力多层级比力深的情况比力好用
缺点:比力贫苦须要对物体设置标签,如果想要得到某一个该标签的物体的时间,不是很好用;不能查找被隐藏的物体
5.FindObjectsOfType和FindObjectsOfType:
对比:FindObjectOfType从上往下查找含有对应组件的第一个物体,FindObjectsOfType返回一个数组
优点:不须要知道物体的名称或者索引,返回与该类型匹配的对象,
缺点:该函数的运行速度非常缓慢。不建议对每一帧都利用该函数。 在大多数情况下,您可以改为利用单例模式。不能查找隐藏的物体
6.Resources.FindObjectsOfTypeAll:
优点:可以在整个Hierarchy窗口中查找全部物体,特指全部物体,无论有没有被隐藏。通常用在编辑器脚本中
缺点:性能开销比力大
知乎链接
接待各人参加知识星球,我们一起进步

来源:https://blog.csdn.net/weixin_46292030/article/details/126983962
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则