Version: 2017.3 (switch to 2017.4)
LanguageEnglish
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

Transform.Find

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Switch to Manual
public method Find(name: string): Transform;
public Transform Find(string name);

Parameters

n Name of child to be found.

Returns

Transform The returned child transform or null if no child is found.

Description

Finds a child by n and returns it.

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

Note: Find does not perform a recursive descend down a Transform hierarchy.

#pragma strict
public var player;
public var gun;
public var ammo;
//Invoked when a button is clicked.
//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");
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. Find will only search the given list of children looking for a named Transform.


A GameObject with three children. Find() does not find the third child.

no example available in JavaScript
// 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"); } } }
对文档有任何疑问,请移步至开发者社区提问,我们将尽快为您解答