Находит объект с именем name
и возвращает его.
Если объект с именем name
не будет найден, то будет возвращен null.
Если имя name
содержит символ '/', то будет произведен обход иерархии, как если бы вместо имени был указан путь.
Эта функция возвращает только активные gameobject'ы.
Из соображений по производительности не рекомендуется использовать эту функцию каждый кадр,
вместо этого, при запуске кэшируйте (храните) результат функции в поле или используйте GameObject.FindWithTag.
var hand : GameObject; // This will return the game object named Hand in the scene. hand = GameObject.Find("Hand");
// This will return the game object named Hand. // Hand must not have a parent in the hierarchy view! hand = GameObject.Find("/Hand");
// This will return the game object named Hand, // which is a child of Arm -> Monster. // Monster must not have a parent in the hierarchy view! hand = GameObject.Find("/Monster/Arm/Hand");
// This will return the game object named Hand, // which is a child of Arm -> Monster. // Monster may have a parent. hand = GameObject.Find("Monster/Arm/Hand");
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public GameObject hand; void Example() { hand = GameObject.Find("Hand"); hand = GameObject.Find("/Hand"); hand = GameObject.Find("/Monster/Arm/Hand"); hand = GameObject.Find("Monster/Arm/Hand"); } }
Эта функция очень полезна для автоматического задания ссылок на другие объекты во время загрузки, например, внутри функции MonoBehaviour.Awake или MonoBehaviour.Start Из соображений по производительности, следует избегать вызовов этой функции на каждом кадре, например, внутри MonoBehaviour.Update. Общий подход состоит в следующем: переменной назначается игровой объект внутри функции MonoBehaviour.Start, а в функции MonoBehaviour.Update используется переменная.
// Find the hand inside Start and rotate it every frame private var hand : GameObject; function Start () { hand = GameObject.Find("/Monster/Arm/Hand"); } function Update () { hand.transform.Rotate(0, 100 * Time.deltaTime, 0); }
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { private GameObject hand; void Start() { hand = GameObject.Find("/Monster/Arm/Hand"); } void Update() { hand.transform.Rotate(0, 100 * Time.deltaTime, 0); } }