Güncelleme vs Sabit Güncelleme vs LateUpdate

Unity API'ün öne çıkan bir kısmı, sürekli çalışan işlevler olan güncelleme işlevleridir.

Unity üç tür güncelleme işlevi vardır: 'Update', FixedUpdate ve LateUpdate.

'Update' vs FixedUpdate

'Update' ve FixedUpdate işlevleri arasındaki fark, ne sıklıkta çalıştıklarıdır.

'Update' işlevi kare başına bir kez çalışır; FixedUpdate ise 'Project Settings' -> 'Time' içindeki "Fixed Timestamp" değeri tarafından kontrol edilen sabit bir hızda çalışır.

'Update' işlevler oyun mantığını, oyuncu girişini ve temel olarak fizik dışı hesaplamaları programlamak için uygundur.

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            //Space button has been pressed
        }    
    }

Öte yandan, FixedUpdate işlevleri Raycasting, Sert Cisimlere kuvvet uygulama veya kare hızından bağımsız olması gereken hesaplamalar gibi fizik tabanlı hesaplamalar için uygundur.

    void FixedUpdate()
    {
        //Use Physics Raycast to detect if there any object in front
        RaycastHit hit;
        if(Physics.Raycast(transform.position, transform.forward, out hit, 10))
        {
            Debug.Log("Object '" + hit.transform.name + "' is currently in front of this object.");
        }
    }

Güncelleme vs LateUpdate

'Update' ve LateUpdate çalışma frekansı açısından aynıdır (her ikisi de kare başına bir kez çalışır), ancak LateUpdate tüm 'Update' işlevlerinden sonra çalışır.

Son olarak LateUpdate işlevi, animasyonlu model kemiklerini değiştirmek (örn. oyuncu modelinin yukarı ve aşağı görünmesini sağlamak) veya düzgün bir kamera takibi uygulamak için yaygın olarak kullanılır.

    void LateUpdate()
    {
        //Make camera tagged 'MainCamera' look at this object transform
        Camera mainCamera = Camera.main;
        mainCamera.transform.LookAt(transform);
    }

Götürmek

Her güncelleme fonksiyonunun kendi kullanım durumu vardır.

Çok çeşitli senaryoları uygulamak için bunları birlikte kullanın.

Önerilen Makaleler
Unity'de MonoBehaviour Kılavuzu
Unity C# Komut Dosyası Diline Giriş
Unity'de Runtime Animator Controller'ı Kullanma
C#'ta Yararlı Anahtar Kelimelerin Birlik Listesi
Unity'de Klavye ve Fare Girişini Uygulama
İşlevleri ve Yöntem Çağrılarını Anlamak
Birlik Kodunda Koşullu İfadeler (if-else) Oluşturma