GameObject.Find
Deklarasyon
public static GameObject Find(string name);
Açıklama
Bir GameObject'i adıyla bulur ve döndürür.
Bu fonksiyon yalnızca aktif GameObject'leri döndürür. Belirtilen adla bir GameObject bulunamazsa, null döndürülür. Ad bir '/' karakteri içeriyorsa, hiyerarşiyi bir yol adı gibi tarar.
Performans nedenleriyle, bu fonksiyonun her karede kullanılmaması önerilir. Bunun yerine, sonucu başlangıçta bir üye değişkenine önbelleğe alın veya GameObject.FindWithTag kullanın.
Not: Bir alt GameObject bulmak istiyorsanız, Transform.Find kullanmak genellikle daha kolaydır.
Not: Oyun birden fazla sahne ile çalışıyorsa, Find tüm sahnelerde arama yapacaktır.
using UnityEngine;
using System.Collections;
// Bu, sahnelerden birinde Hand adlı GameObject'i döndürür.
public class ExampleClass : MonoBehaviour
{
public GameObject hand;
void Example()
{
// Bu, Hand adlı GameObject'i döndürür.
hand = GameObject.Find("Hand");
// Bu, Hand adlı GameObject'i döndürür.
// Hand, hiyerarşi görünümünde bir ebeveyne sahip olmamalıdır.
hand = GameObject.Find("/Hand");
// Bu, Arm > Monster'ın bir çocuğu olan Hand adlı GameObject'i döndürür.
// Monster, hiyerarşi görünümünde bir ebeveyne sahip olmamalıdır.
hand = GameObject.Find("/Monster/Arm/Hand");
// Bu, Arm > Monster'ın bir çocuğu olan Hand adlı GameObject'i döndürür.
hand = GameObject.Find("Monster/Arm/Hand");
}
}
GameObject.Find, yükleme sırasında diğer nesnelere referansları otomatik olarak bağlamak için kullanışlıdır; örneğin, MonoBehaviour.Awake veya MonoBehaviour.Start içinde.
Performans nedenleriyle, bu fonksiyonun her karede kullanılmaması önerilir.
Yaygın bir desen, bir GameObject'i MonoBehaviour.Start içinde bir değişkene atamak ve MonoBehaviour.Update içinde bu değişkeni kullanmaktır.
using UnityEngine;
using System.Collections;
// Hand adlı GameObject'i bul ve her karede döndür
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);
}
}
Bu blog Unity Docs'un Türkçeye çevrilmiş halidir.
Yorumlar
Yorum Gönder