Component.GetComponentInChildren
Deklarasyon
public T GetComponentInChildren(bool includeInactive = false);
Parametreler
includeInactive | Aramada pasif alt GameObject'leri dahil edip etmeyeceğinizi belirtir. |
Dönüş Değeri
T T türünde bir bileşen, aksi takdirde hiçbir bileşen bulunamazsa null.
Açıklama
Belirtilen bileşenle aynı GameObject veya herhangi bir alt GameObject üzerinde T türünde bir bileşene referans alır.
Bu metodun tipik kullanımı, bir MonoBehaviour komut dosyasından (ki bu da bir bileşen türüdür) çağrılarak, o komut dosyasıyla aynı GameObject'e veya alt GameObject'lerine bağlı diğer Bileşenler veya MonoBehaviour'lara referans bulmaktır. Bu durumda, metodu öncesinde bir nesne belirtmeden çağırabilirsiniz. Örneğin:
myResults = GetComponentInChildren<ComponentType>()
Bu metodu, farklı bir GameObject'e bağlı olabilecek farklı bir bileşene referansla da çağırabilirsiniz. Bu durumda, o bileşenin bağlı olduğu GameObject ve altları aranır. Örneğin:
myResults = otherComponent.GetComponentInChildren<ComponentType>()
Bu metod, çağrıldığı GameObject'i önce kontrol eder, ardından T türünde bir Bileşen bulana kadar her alt GameObject üzerinden derinlemesine bir arama yapar.
Yalnızca aktif alt GameObject'ler aramaya dahil edilir, ancak includeInactive parametresi true olarak ayarlanırsa, pasif alt GameObject'ler de dahil edilir. Metodun çağrıldığı GameObject, bu parametreden bağımsız olarak her zaman aranır.
Not: GetComponentInChildren yalnızca bulunan ilk eşleşen bileşeni döndürür ve herhangi bir bireysel GameObject üzerindeki bileşenlerin kontrol sırası tanımlı değildir. Bu nedenle, herhangi bir bireysel GameObject üzerinde eşleşebilecek birden fazla tür varsa ve belirli birini bulmanız gerekiyorsa, Component.GetComponentsInChildren kullanmalı ve istediğiniz bileşeni belirlemek için döndürülen bileşenler listesini kontrol etmelisiniz.
Belirli bir GameObject'e bağlı bileşenleri bulmak için, o diğer GameObject'e (veya o GameObject'e bağlı herhangi bir bileşene) bir referansa ihtiyacınız vardır. Ardından, o referansta GetComponentInChildren çağrısı yapabilirsiniz.
GetComponent metod ailesinin diğer varyasyonları için Component ve GameObject sınıf referans sayfalarına bakın.
Aşağıdaki örnek, belirtilen GameObject üzerindeki veya altlarından herhangi birindeki bir hinge joint bileşenine bir referans alır ve bulunursa, o hinge joint bileşeninde bir özelliği ayarlar.
using UnityEngine;
public class GetComponentInChildrenExample : MonoBehaviour
{
void Start()
{
HingeJoint hinge = GetComponentInChildren<HingeJoint>();
if (hinge != null)
{
hinge.useSpring = false;
}
else
{
// Pasif GameObject'leri dahil ederek tekrar deneyin.
hinge = GetComponentInChildren<HingeJoint>(true);
if (hinge != null)
{
hinge.useSpring = false;
}
}
}
}
Not: İstediğiniz tür bir MonoBehaviour türevi ise ve ilgili komut dosyası yüklenemiyorsa, bu fonksiyon o bileşen için `null` döndürecektir.
Deklarasyon
public Component GetComponentInChildren(Type t, bool includeInactive);
Deklarasyon
public Component GetComponentInChildren(Type t);
Parametreler
t | Aranacak bileşen türü. |
includeInactive | Aramada pasif alt GameObject'leri dahil edip etmeyeceğinizi belirtir. |
Dönüş Değeri
Component type türünde bir bileşen, aksi takdirde hiçbir bileşen bulunamazsa null.
Açıklama
Bu metodun jenerik olmayan versiyonu.
Bu GetComponentInChildren versiyonu, Jenerik versiyon (yukarıda) kadar verimli değildir, bu yüzden yalnızca gerekli olduğunda kullanılmalıdır.
using UnityEngine; public class GetComponentInChildrenExample : MonoBehaviour { void Start() { HingeJoint hinge = GetComponentInChildren(typeof(HingeJoint)) as HingeJoint; if (hinge != null) { hinge.useSpring = false; } else { // Pasif GameObject'leri dahil ederek tekrar deneyin. hinge = GetComponentInChildren(typeof(HingeJoint), true) as HingeJoint; if (hinge != null) { hinge.useSpring = false; } } } }
Bu blog Unity Docs'un Türkçeye çevrilmiş halidir.
Yorumlar
Yorum Gönder