Version: 2021.1
public Transform Find (string n);

参数

n 要查找的子项的名称。

返回

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

描述

Finds a child by name n and returns it.

If no child with name n can be found, null is returned. If n contains a '/' character it will access the Transform in the hierarchy like a path name.

__注意:__.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"); } }

As described Find does not descend the Transform hierarchy. Find will only search the given list of children looking for a named Transform. The following example shows the result of Find searching for GameObjects. The name of each GameObject is used in the Find. This is why two GameObjects in the same level of the hierarchy are found and reported.


附带三个子项的一个游戏对象。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;

for (int i = 1; i < 4; i++) { string sph;

sph = "sphere" + i.ToString(); result = gameObject.transform.Find(sph);

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