Unity Fonksiyonları – En Çok Kullanılanlar

nhtctn nhtctn

Bu yazımda bazı Unity fonksiyonları anlatacağım. Bunlardan bazıları AwakeStartUpdateFixedUpdateLateUpdateOnEnableOnDisableSetActive ve Destroy fonksiyonları. Unity ile çalışan insanlar bu fonksiyonlardan çoğunu kesinlikle her projesinde kullanırlar. O yüzden bu fonksiyonlara tamamen hakim olmak çok önemli.

Awake, Start, Update, FixedUpdate, LateUpdate, OnEnable, OnDisable, SetActive Destroy
Unity Fonksiyonları

Awake Fonksiyonu

Awake fonksiyonu projemizde ilk önce çalışan fonksiyondur. Yani oyunumuz açıldığı zaman ilk önce Awake fonksiyonu çalışır. Ayrıca Awake fonksiyonunun bir diğer önemli özelliği scriptimizin bulunduğu obje aktif olmasa bile çalışır. Yani ne demek bu, scriptlerimizin çalışması için sahnemizde olan herhangi bir objenin içinde bulunması gerekir. Ama o obje pasifse script normalde çalışmaz. Awake fonksiyonu objemiz pasif olsa bile çalışır. Yani Awake fonksiyonunun çalışması için sahne içinde bulunması yeterlidir.

Örnek Kod:

private void Awake()
    {
        // İlk önce burası çalışır.
    }

private void Start()
    {
        // Sonrasında Start metodu çalışır.
        // Bulunulan obje pasifse çalışmaz
    }

Start Fonksiyonu

Start fonksiyonu Awake fonksiyonundan sonra çalışan fonksiyondur. Start fonksiyonunun çalışması için bulunduğu objenin aktif olması gerekir. Obje aktif değilse sadece Awake fonksiyonu çalışır Start fonksiyonu çalışmaz.

Update Fonksiyonu

Update fonksiyonu bir kere çalışıp durmaz, her frame de çalışır. Yani ne demek bu bilgisayarınız 60 frame ise Update fonksiyonu saniyede 60 kere çalışmış oluyor. Bilgisayarın donanımına göre de çalışma sayısı değişiklik gösterir. Daha iyi bilgisayarlarda Update fonksiyonu saniyede 100 kere de çalışabilir. Ve önemli bir bilgi olarak da çalışma aralıkları aynı değildir. Yani ilk olarak 0.01 saniyede çalışıyor mesela sonra 0.05 saniyede çalışıyor aradaki fark 0.04 saniye bundan sonra da 0.09 saniyede çalışacak diye bir kurar yok bu donanımınıza göre değişiklik gösterir. Sonraki fonksiyon 0.08 saniyede de 0.10 saniyede de çalışabilir. Umarım anlatabilmişimdir.

Örnek Kod:

private void Update()
    {
        Debug.Log("Düzenli bir şekilde çalışmaz. Her frame'de çalışır. PC'nin hızına bağlı olarak değişiklik gösterir.");
    }

FixedUpdate Fonksiyonu

FixedUpdate fonksiyonu düzenli bir biçimde her zaman çalışır. Update fonsiyonundan farkı düzenli bir şekilde çalışmasıdır. Genelde 0.02 saniyede bir çalışır. Donanımdan donanıma bu süre değişmez. Düzenli çalıştığı için fizik olaylarında kullanılır. Fizik olaylarında normal Update fonksiyonu kullanılmaması gerekir. Çünkü düzenli bir şekilde çalışmadığı için sağlıklı olmaz.

Örnek Kod:

private void FixedUpdate()
    {
        Debug.Log("Düzenli bir şekilde belirli aralıklarla çalıştığı için Fizik olaylarında kullanılır. Her 0,02 saniyede çalışır. Bu aralık değiştirilebilir");
    }

LateUpdate Fonksiyonu

LateUpdate Fonksiyonu diğer Update fonksiyonları bittikten sonra çalışır. Genelde en çok kamera konumlandırılmasında kullanılır.

Örnek Kod:

private void LateUpdate()
    {
        Debug.Log("En son çalışan Update fonksiyonu.")
    }

OnEnable ve OnDisable Fonksiyonları

OnEnable fonksiyonu obje aktif hale getirildiğinde OnDisable fonksiyonu obje pasif hale getirildiğinde çalışır. Basit scriptin bulunduğu obje aktif ve pasif hale getirildiğinde çalışır.

Örnek Kod:

private void OnEnable()
    {
        Debug.Log("Objemiz Aktif hale getirildi.");
    }

    private void OnDisable()
    {
        Debug.Log("Objemiz Pasif hale getirildi.");
    }

SetActive Fonksiyonu

SetActive fonksiyonu objenin görünürlüğünü kapatır. Tam tersini yapmak için yani objenin görünürlüğünü açmak için false yerine true yazılır.

Örnek Kod:

public GameObject obje;

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            obje.SetActive(false);
        }
    }

Yukarıdaki kodda space tuşuna batığımız zaman obje içine atılan objemiz pasif hale gelecektir.

Destroy Fonksiyonu

Destroy’un içine yazdığımız obje yok edilir.  2. Değer ise kaç saniye sonra yok edileceğini belirler zorunlu değildir. Mesela örnekte space tuşuna bastığımız anda obje 2 saniye sonra yok olur.

Örnek Kod:

public GameObject obje;

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            Destroy(obje, 2f);
        }
    }

Unity’de en çok kullanılan fonksiyonlar bunlardır. Daha fazlası için Unity Döküman sayfasına göz atabilirsiniz.

Kaynak: https://kodlib.com/unity/unity-fonksiyonlari/

Yorum yazın

BENZER YAZILAR