Unity

[Unity] Update, FixedUpdate, LateUpdate

Airhood 2025. 1. 2. 09:00

Unity에는 다양한 이벤트 함수들이 있지만 그중에서 Update와 관련된 함수들을 가장 많이 사용하게 된다.

이는 Update, FixedUpdate, LateUpdate로 3가지 종류가 있는데 이 세 함수들은 서로 호출 주기도 다르고 작동 방식도 다르다.

 

Update

매 프레임마다 호출되는 함수로 프레임마다 연산에 걸리는 시간이 다를 수 있기 때문에 호출되는 주기가 항상 일정하지 않다.

Update 직전 프레임이 완료하는 데에 걸린 시간은 Time.deltaTime을 통해 가져올 수 있다.

 

호출 주기가 일정하지 않기 때문에 플레잉의 움직임 등을 Update에서 시행하게 된다면 항상 Time.deltaTime을 곱해서 플레이어가 일정한 속도로 움직일 수 있도록 보정을 해야 한다.

 

Fixed Update

Update와 다르게 항상 일정한 주기로 호출되며, 주로 매번 일정한 주기로 연산이 일어나야 하는 물리 연산 등을 처리하기 위해 사용한다.

일정한 주기로 호출되기 때문에 Rigidbody 등과 관련된 물리 연산을 fixed update에서 하면 정확성을 높일 수 있다.

 

호출 주기는 Fixed Timestep이라는 값에 의해 결정되는데, 이는 Unity Editor에서 Project Settings의 Time 탭에서 변경할 수 있다.

 

Late Update

Update가 호출된 이후에 호출되는 함수로 주로 Update에서 연산이 완료된 수에 실행되어야 하는 경우에 사용한다.

 

예를 들어 플레이어가 움직인 이후에 움직여야 하는 3인칭 카메라 등을 구현할 때 사용한다.

 

 

 

다른 이벤트 함수들의 실행 순서는 Unity Life-Cycle flowchart에서 확인할 수 있다.

https://docs.unity3d.com/kr/2022.3/Manual/ExecutionOrder.html

 

이벤트 함수의 실행 순서 - Unity 매뉴얼

Unity 스크립트를 실행하면 사전에 지정한 순서대로 여러 개의 이벤트 함수가 실행됩니다. 이 페이지에서는 이러한 이벤트 함수를 소개하고 실행 시퀀스에 어떻게 포함되는지 설명합니다.

docs.unity3d.com