Unity MonoBehavior Sınıfı Temel Fonksiyonları

ücretsiz unity eğitim serisi

MonoBehaviour, her Unity scriptinin türetildiği temel sınıftır. C# script kullandığınızda, MonoBehaviour’dan türetmeniz gerekmektedir. Aşağıda yer alan önemli MonoBehavior sınıfı fonksiyonlarını inceleyeceğiz.

  • Start()
  • Awake()
  • Update()
  • OnGUI()
  • OnDestroy()
  • OnApplicationQuit()
  • OnEnable()
  • OnDisable()

Start, Awake ve Update  Fonksiyonları

Start fonksiyonun içindeki kodlar herhangi bir güncelleme işlemi gerçekleşmeden ve sahne objeleri henüz oluşturmadan önce çalışacak olan kodlardır. Awake fonksiyonundan sonra çalışır. Update fonksiyonu ise devamlı çalışan güncelleme fonksiyonudur.

public class MonoExample : MonoBehaviour
{
    private float update;
    void Awake()
    {
        Debug.Log("Awake");
        update = 0.0f;
    }
    IEnumerator Start()
    {
        Debug.Log("Start1");
        yield return new WaitForSeconds(2.5f);
        Debug.Log("Start2");
    }
    void Update()
    {
        update += Time.deltaTime;
        if (update > 1.0f)
        {
            update = 0.0f;
            Debug.Log("Update");
        }
    }
}

Burada ilk çalışacak olan fonksiyon Awake Fonksiyonudur. Daha Sonra Start fonksiyonu başlar. Fakat bu fonksiyon 2.5 saniyeden önce bitmeyecektir. Start fonksiyonunun başlamasıyla beraber bitmesi beklenmeden Update fonksiyonu başlayacaktır. Yukarıda kodların çıktısı şu şekilde olur :

Çıktı

Awake
Start 1
Update
Update
...
Start 2
Update
Update
...

OnGUI, OnDestroy ve OnApplicationQuit Fonksiyonları

OnGUI fonksiyonu Unity UI işlemleri gerçekleştirmek ve eventlerini kontrol etmek için kullanılabilir. OnDestroy fonksiyonu ise obje yok edilmeden hemen önce çalışacak olan fonksiyodur. OnApplicationQuit fonksiyonu da uygulama kapanmadan önce çalışır.

Bir objenin yok edilmesi de Destroy statik fonksiyonu ile gerçekleşir. Destroy(gameobject) diyerek objeyi yok edebilirsiniz.

Application.Quit() ile de uygulamanın kapanması sağlanabilir.

OnEnable ve OnDisable Fonksiyonları

OnEnable() fonksiyonu objemiz eğer aktif ise bir defaya mahsus olmak üzere çalışır. Benzer şekilde OnDisable fonksiyonu da obje aktif değilse çalışacak olan fonksiyondur. Ayrıca bir objeye bağlı scriptte gameobject.SetActive(false) veya gameobject.SetActive(true) kodlarını kullanarak objeyi aktif veya deaktif duruma getirebiliriz.

Diğer Unity MonoBehavior fonksiyonlarını da örneklerle farklı konu başlıkları altında paylaşıyor olacağım. Konu ile ilgili sormak istediğiniz soruları yorumlarda belirtebilirsiniz.

Unity Ders Listesini görüntüleyin.