GameObject.GetComponent
Deklarasyon
public T GetComponent();
Dönüş Değeri
T Eğer bulunursa, tür T'ye ait bir bileşene referans, aksi takdirde null.
Açıklama
Belirtilen GameObject üzerinde T türünde bir bileşenine referans alır.
Bu metodun tipik kullanımı, komut dosyanızın üzerinde olmadığı farklı bir GameObject'e referansla çağrılmasıdır. Örneğin:
myResults = otherGameObject.GetComponent<ComponentType>();
Ancak, bir MonoBehaviour sınıfı içinde kod yazıyorsanız, komut dosyanızın bağlı olduğu aynı GameObject'ten bir bileşen almak için önceki GameObject referansını atlayabilirsiniz. Bu durumda, aslında Component.GetComponent çağırıyorsunuz çünkü komut dosyasının kendisi bir bileşen türüdür, ancak sonuç, GameObject'i referans almış gibi aynıdır. Örneğin:
myResults = GetComponent<ComponentType>();
GetComponent, yalnızca çağrıldığı GameObject üzerinde bulunan ilk eşleşen bileşeni döndürür ve bileşenlerin kontrol edildiği sıra tanımlı değildir. Bu nedenle, eşleşebilecek birden fazla tür varsa ve belirli birini bulmanız gerekiyorsa, Component.GetComponents kullanmalı ve döndürülen bileşenler listesini kontrol etmelisiniz.
Diğer GameObject'lere bağlı bileşenleri bulmak için, o diğer GameObject'e (veya o GameObject'e bağlı herhangi bir bileşene) bir referansınız olmalıdır. Daha sonra bu referansta GetComponent çağırabilirsiniz.
GetComponent ailesinin diğer metod varyasyonları için Component ve GameObject sınıf referans sayfalarına bakın.
Aşağıdaki örnek, referans alınan GameObject üzerinde bir hinge joint bileşenine referans alır ve eğer bulunursa, o hinge joint bileşeni üzerinde bir özelliği ayarlar.
using UnityEngine; public class GetComponentExample : MonoBehaviour { public GameObject otherGameObject; void Start() { HingeJoint hinge = otherGameObject.GetComponent<HingeJoint>(); if (hinge != null) { hinge.useSpring = false; } } }
Not: İstediğiniz tür, MonoBehaviour'un bir türevi ise ve ilgili komut dosyası yüklenemiyorsa, bu fonksiyon o bileşen için `null` döndürecektir.
Deklarasyon
public Component GetComponent(Type type);
Parametreler
type | Aranacak Bileşen türü. |
Dönüş Değeri
Component type türünde bir Bileşen, aksi takdirde bulunamazsa null.
Açıklama
Bu metodun jenerik olmayan versiyonu.
GetComponent'in bu versiyonu, Jenerik versiyon (yukarıda) kadar verimli değildir, bu yüzden yalnızca gerekli olduğunda kullanmalısınız.
using UnityEngine; public class GetComponentExample : MonoBehaviour { public GameObject otherGameObject; void Start() { HingeJoint hinge = otherGameObject.GetComponent(typeof(HingeJoint)) as HingeJoint; if (hinge != null) { hinge.useSpring = false; } } }
Deklarasyon
public Component GetComponent(string type);
Parametreler
type | Aranacak Bileşen türünün adı. |
Dönüş Değeri
Component type türünde bir Bileşen, aksi takdirde bulunamazsa null.
Açıklama
Bu metodun string tabanlı versiyonu.
GetComponent'in bu versiyonu, Jenerik versiyon (yukarıda) kadar verimli değildir, bu yüzden yalnızca gerekli olduğunda kullanmalısınız.
using UnityEngine; public class GetComponentNonPerformantExample : MonoBehaviour { public GameObject otherGameObject; void Start() { HingeJoint hinge = otherGameObject.GetComponent("HingeJoint") as HingeJoint; if (hinge != null) { hinge.useSpring = false; } } }
Bu blog Unity Docs'un Türkçeye çevrilmiş halidir.
Yorumlar
Yorum Gönder