Component.GetComponentInParent
Deklarasyon
public T GetComponentInParent();
Deklarasyon
public T GetComponentInParent(bool includeInactive = false);
Parametreler
includeInactive | Aramada pasif üst 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 üst 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 üst 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 = GetComponentInParent<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 üstleri aranır. Örneğin:
myResults = otherComponent.GetComponentInParent<ComponentType>()
Bu metod, çağrıldığı GameObject'i önce kontrol eder, ardından T türünde bir Bileşen bulana kadar her üst GameObject üzerinden yukarı doğru devam eder.
Yalnızca aktif üst GameObject'ler aramaya dahil edilir, ancak includeInactive parametresi true olarak ayarlanırsa, pasif üst GameObject'ler de dahil edilir. Metodun çağrıldığı GameObject, bu parametreden bağımsız olarak her zaman aranır.
Not: GetComponentInParent 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.GetComponentsInParent 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 GetComponentInParent ç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 üstlerinden 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 GetComponentInParentExample : MonoBehaviour { void Start() { HingeJoint hinge = GetComponentInParent<HingeJoint>(); if (hinge != null) { hinge.useSpring = false; } else { // Pasif GameObject'leri dahil ederek tekrar deneyin. hinge = GetComponentInParent<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 GetComponentInParent(Type t);
Deklarasyon
public Component GetComponentInParent(Type t, bool includeInactive);
Parametreler
t | Aranacak bileşen türü. |
includeInactive | Aramada pasif üst 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 GetComponentInParent 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 GetComponentInParentExample : MonoBehaviour { void Start() { HingeJoint hinge = GetComponentInParent(typeof(HingeJoint)) as HingeJoint; if (hinge != null) { hinge.useSpring = false; } else { // Pasif GameObject'leri dahil ederek tekrar deneyin. hinge = GetComponentInParent(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