Güncelleme ve LateUpdate

Unity'te Güncelleme ve LateUpdate işlevleri, bir sahnedeki nesnelerin davranışlarını güncellemek için yaygın olarak kullanılır ve benzer amaçlara hizmet etseler de, işlevler arasında önemli farklar vardır. iki.

'Update'

'Update' işlevi kare başına bir kez çağrılır ve giriş işleme ve nesne hareket gibi genel amaçlı görevlerin çoğu için kullanılır. 'Update''nin kare hızına bağlı olmadığını, yani yürütme süresinin performansa bağlı olarak değişebileceğini unutmamak önemlidir.

void Update()
{
    // Input handling
    float horizontalInput = Input.GetAxis("Horizontal");
    float verticalInput = Input.GetAxis("Vertical");
    
    // Movement
    Vector3 movement = new Vector3(horizontalInput, 0, verticalInput);
    transform.Translate(movement * speed * Time.deltaTime);
    
    // General-purpose tasks
    // ...
}

Yukarıdaki örnekte yatay ve dikey eksenlerden girdi alıyoruz ve bunu nesnenin hareketini kontrol etmek için kullanıyoruz. 'Translate' yöntemi, nesneyi belirtilen yönde sabit bir hızla hareket ettirmek için kullanılır. Genel amaçlı görevler aynı zamanda 'Update' işlevi içinde de gerçekleştirilebilir.

'LateUpdate'

'LateUpdate' işlevi de kare başına bir kez çağrılır, ancak tüm 'Update' işlevleri tamamlandıktan sonra yürütülür. Genellikle hareket nesnesi veya animasyon gibi diğer güncellemelerin, bu güncellemelere bağlı ek eylemler gerçekleştirilmeden önce tamamlandığından emin olmak için kullanılır.

void LateUpdate()
{
    // Camera follow
    Vector3 desiredPosition = target.position + offset;
    transform.position = Vector3.Lerp(transform.position, desiredPosition, smoothness);
    
    // Additional actions after other updates
    // ...
}

Yukarıdaki örnekte 'LateUpdate' işlevi, hedef nesneyi kamerayla sorunsuz bir şekilde takip etmek için kullanılır. 'Update' fonksiyonlarında hedefin hareketi işlendikten sonra kamera konumunun güncellenmesini sağlar. Nesnenin güncellenmiş konumuna bağlı ek eylemler de 'LateUpdate' içinde gerçekleştirilebilir.

'Update' vs 'LateUpdate'

'Update' ve LateUpdate işlevleri arasındaki temel farklar*:

  • 'Update' Çerçevede ilk olarak çağrılır, ardından LateUpdate gelir.
  • 'Update' giriş işleme, nesne hareket ve kamerayla ilgili olmayan işlemler dahil olmak üzere çoğu genel amaçlı görev için uygundur.
  • LateUpdate genellikle bir hedef nesneyi sorunsuzca takip etmek veya diğer güncellemelere bağlı eylemleri gerçekleştirmek gibi kamerayla ilgili görevler için kullanılır.
  • LateUpdate kullanılması, diğer güncellemelere bağlı eylemlerin, bu güncellemeler işlendikten sonra gerçekleşmesini sağlamaya yardımcı olur.

Çözüm

Hem 'Update' hem de 'LateUpdate''nin aynı komut dosyasında bir arada bulunabileceğini ve farklı güncelleme türlerinin ayrılmasına olanak sağladığını belirtmekte fayda var. Farklılıkları anlamak ve her bağlamda uygun işlevi kullanmak, Unity projelerinde istenen davranışın elde edilmesine yardımcı olur.