GameObject.Find

Uniyt3D 中使用GameObject.Find(string name)需要知道的几点:

1、如果场景中有很多个名字为name的游戏物体,查找的顺序是最晚创建的最先被找到(与创建的层级也就是hierarchy的位置无关,与修改名字的时间无关),只与创建该对象的时间有关

2、假设游戏物体的名字有“namename”“name”“name”三个游戏物体,第一个name是第二个name的父节点,如图所示:
三个游戏物体
当我使用GameObject.Find(“namename”) 的时候,一目了然会找到“namename”这个游戏物体,那如果我删掉namename这个游戏物体的时候呢,
两个游戏物体
我再使用GameObject.Find(“namename”) 的时候,也会找到一个游戏物体,这个物体是第二个name也就是那个 孩子 级的name。这里默认了父节点与子节点的名字是连接在一起的。比如:
我创建了1 2 3 4 5五个游戏对象
当我使用GameObject.Find(“45”) 的时候会找到 5 这个游戏物体
当我使用GameObject.Find(“12”) 的时候会找到 2 这个游戏物体
当我使用GameObject.Find(“23”) 的时候会找到 3这个游戏物体
当我使用GameObject.Find(“34”) 的时候会找到 4这个游戏物体
当我使用GameObject.Find(“345”) 的时候会找不到游戏物体
当我使用GameObject.Find(“2345”) 的时候会找不到游戏物体
当我使用GameObject.Find(“12345”) 的时候会找不到游戏物体
也就是说只有两个连在一起的才行,三个及其以上都不行了。

又比如我现在有两个同名的子对象又该如何:
我现在找“df”
当我使用GameObject.Find(“df”) 的时候会找到第一个 f ,也就是Child(0)这个 f 。

3、GameObject.Find很耗时间的,一般通过Tag找,或通过Transform.Find

4、能不用就不用~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值