Version: 2017.3
public Transform Find (string name);

参数

n 要查找的子项的名称。

返回

Transform 如果找到子项,则返回该子变换;否则返回 null。

描述

n 查找子项,然后返回它。

如果未找到具有 n 的子项,则返回 null。 如果 n 包含“/”字符,它将像访问路径名称那样访问层级视图中的变换。

__注意:__.Find 不在变换层级视图中执行递归向下查找。

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { public GameObject player; public GameObject gun; public Transform ammo;

//Invoked when a button is clicked. public void Example() { //Finds and assigns the child of the player named "Gun". gun = player.transform.Find("Gun").gameObject;

//If the child was found. if (gun != null) { //Find the child named "ammo" of the gameobject "magazine" (magazine is a child of "gun"). ammo = gun.transform.Find("magazine/ammo"); } else Debug.Log("No child with the name 'Gun' attached to the player"); } }

如上所述,Find 不在 Transform 中向下查找。Find 将只搜索给定的子项列表,以查找名为 Transform 的子项。

\ 附带三个子项的一个游戏对象。Find() 不能找到第三个子项。

// ExampleClass has a GameObject with three spheres attached.
// Two of these are children of the GameObject.  The third
// transform, sphere3, is a child of sphere2.  Find() does
// not find this child.

using UnityEngine;

public class ExampleClass : MonoBehaviour { void Start() { Transform result = gameObject.transform.Find("sphere3");

if (result) { Debug.Log("Found sphere3"); } else { Debug.Log("Did not find sphere3"); } } }