Unity查找游戏对象

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值