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