GameObject.Find、Transform.Find和Transform.FindChild

本文探讨了Unity中GameObject.Find和Transform.Find方法的区别。GameObject.Find方法在查找路径中若遇任一节点active为false则无法找到目标;而Transform.Find方法则不受节点隐藏的影响。此外,文章还提及节点隐藏对脚本Awake方法执行的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      在Unity开发游戏中我们经常会遇到通过路径去找到我们想要的节点,Unity的API中给我们提拱了三个方法(题目中的三个),但是这三个又略有不同,其中后两个我们可以认为是相同的,在Unity2017里后两个方法好像已经合并为一个了,即Find

       首先看我们的节点关系:其中脚本挂在了GameObject上

       

Transfrom:

路径(函数参数)节点是否隐藏能否找到
GameObjectfalse/truefalse/false
GameObject1false/truetrue/true

GameObject:

路径(函数参数)节点是否隐藏能否找到
GameObjectfalse/truefalse/true
GameObject/GameObject1false/truefalse/true

总结:

对于GameObject.Find()方法,只要查找路径中任何一个节点active为false,那么我们就无法找到这个节点

而对于Transform.Find()方法,首先路径不能带有节点本身,其他无论路径中的节点是否隐藏,我们都可以通过路径去找到这个节点

测试的过程中发现,如果一个节点隐藏了,那么这个节点上的脚本的Awake方法也不会执行,而如果单纯的隐藏节点下的脚本,该脚本的Awake方法继续执行

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值