GameObject.Find与Transform.Find的区别

Posted blackteeth

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GameObject.Find与Transform.Find的区别相关的知识,希望对你有一定的参考价值。

1.GameObject.Find

函数原型: 

public static GameObject Find(string name);
说明:1.GameObject只能查找到active的物体
   2.如果name指定路径,则按路径查找;否则递归查找,直到查找到第一个符合条件的GameObject或者返回null
 
2.transform.Find
函数原型:
 
public Transform Find(string n);
说明:1.transform.Find用于查找子节点,它并不会递归的查找物体,也就是说它只会查找它的子节点,并不会查找子节点的子节点。
用代码验证:技术分享图片
 1 public class TestFind : MonoBehaviour
 2 {
 3    
 4    public string name = "";
 5    private void Start()
 6    {
 7       Transform t = transform.Find(name);
 8       if(t != null)
 9          print("找到了");
10       else
11       {
12          print("没找到");
13       }
14    }
15 }

说明:TestFind脚本挂在GameObject物体上。

1.name为a, 输出找到了

2.name为aa,输出没找到

3.name为b,输出找到了

4.name为bb,输出没找到

以上是关于GameObject.Find与Transform.Find的区别的主要内容,如果未能解决你的问题,请参考以下文章

Transform与GameObject的区别于用法

小白_Unity引擎_访问组件--GameObject.Find()和transform.Find();

unity3D中GameObject.Find()Transform.Find查找隐藏对象分析

unity基础(GameObject transform)

100个 Unity小知识点 | Unity两种获取游戏对象的方法,GameObject.Find 和 Transform.Find区别

unity3d transform.find能找到孙子节点么