YuDe - Unity Update vs LateUpdate vs FixedUpdate

GAME, SOFTWARE, NETWORKING AND MORE...

Contact us for cooperation

 

Unity Update vs LateUpdate vs FixedUpdate

Merhabalar. Unity MonoBehavior deki "Update", "LateUpdate" ve "FixedUpdate" fonksiyonları arasındaki farkı kısaca anlatacağım. Pek türkçe kaynak olmadığı için bu konuda yetersiz bilgiye sahip olanlara çok şey kazandıracağını düşünüyorum bu anlatacaklarımın.

1-Update

Bu fonksiyon, saniyede gösterilen frame(kare) sayısına yani FPS ye bağlıdır. FPS nin 60 olduğunu varsayarsak, Update fonksiyonu saniyede 60 defa çalışacaktır.

2-LateUpdate

Bu fonksiyonun Update fonksiyonundan tek farkı; Update ten sonra çalışmasıdır. Yine FPS nin 60 olduğunu varsayalım, Update fonkisyonu birkez çalıştıktan hemen sonra LateUpdate çağırılacak. Oda bir kez çalıştıktan sonra tekrar Update e geçecek. Böyle sırayla çalışırlar. Bu arada Update ile LateUpdate arası geçişlerde frame farkı yoktur. Yani diyelim ki oyun yeni açıldı ve daha 5.frame deyiz, Update 5.kez çalıştıktan sonra tekrar LateUpdate ye geçtiğinde bu fonksiyonda da hala 5.frame de olacağız.

3-FixedUpdate

Bu fonksiyon FPS den bağımsız çalışır. Default çalışma aralığı 0.02 saniye de birdir(Yani saniyede 50 defa çalışır). Bu default değeri, Edit/ProjectSettings/Time/FixedTimestep ten değiştirebilirsiniz. İster FPS 1 olsun ister 100 olsun, bu fonksiyon her durumda 0.02(Default değere göre konuşuyorum) saniyede bir çalışır.

Performans açısından bu fonksiyonları kullanmaktan olabildiğince kaçınmanızı tavsiye ediyorum. Gerek olmadıkça kullanmamaya çalışın. Oyununuzda score u ekrana yazdırmak gerektiğinizi varsayalım, eğer bu score zamana bağlı artan ya da azalan bir score değilse bunu ekrana yazdırmak için bu yukarıda açıkladığım loop lu fonksiyonları kullanmak yerine sadece score değiştiğinde ekrana bir seferliğine yazdıran bir fonksiyonu çalıştırmak çok daha mantıklı ve performanslıdır.