[Unity] 유니티의 업데이트 함수들
Unity의 Update, FixedUpdate, LateUpdate
게임 로직, 상호작용, 애니메이션, 카메라 포지션 트래킹 등 다양한 상황에서 사용할 수 있는 업데이트 함수들이 존재한다.일반적으로 Update 함수에 대부분의 작업을 수행하지만, 상황에 따라 적절한 함수를 선택하는 것이 중요하다.
Update
매 프레임마다 실행되는 기본 업데이트 함수
Update는 프레임마다 한 번 호출됩니다. 프레임 업데이트를 위한 주요 작업 함수이다.
- 화면이 한번 그려질 때마다 호출된다
- FPS에 따라 호출 횟수가 달라진다(60fps면 초당 60번)
- 프레임 단위: Time.dletaTime
- 키 입력 처리, 일반적인 게임 로직, UI업데이트에서 사용한다
FixedUpdate
고정된 시간 간격으로 업데이트 되는 함수
모든 물리 계산 및 업데이트는 FixedUpdate후 즉시 실행된다.
- 기본적으로 0.02초마다 호출된다
- FPS와 상관없이 일정하게 실행된다
- 물리 계산은 여기서 해야 정확한 동작이 나온다
- Rigidbody 움직임, 힘 적용, 충돌 관련 처리에서 사용한다
LateUpdate
Update가 전부 끝난 후 실행되는 함수
LateUpdate는 Update가 끝난 후 프레임당 한 번 호출된다.
- 모든 Update가 끝난 뒤 호출
- "나중에 처리해야 하는 것" 담당
- 카메라 따라가기, 위치 보정, 다른 오브젝트 결과 기반 처리에서 사용한다
연습해보기
using UnityEngine;
public class UpdateOrderTest : MonoBehaviour
{
private void FixedUpdate()
{
if (Time.frameCount > 3) return;
Debug.Log($"[Frame {Time.frameCount}] 1. FixedUpdate");
}
private void Update()
{
if (Time.frameCount > 3) return;
Debug.Log($"[Frame {Time.frameCount}] 2. Update");
}
private void LateUpdate()
{
if (Time.frameCount > 3) return;
Debug.Log($"[Frame {Time.frameCount}] 3. LateUpdate");
}
}
각 Update마다 Time.frameCount를 통해 시작 후 3프레임 까지 누적 프레임 수를 로그로 찍었다

위는 실행 결과고 LateUpdate는 Update뒤에 바로 실행되는 것을 확인할 수 있다.
재미있는 점은 FixedUpdate가 Frame3에서 4번 호출됐는데
Update가 실행되기 전까지 밀린 물리 연산이 한꺼번에 처리된 것이다.


![[Unity] PC 세이브 데이터 Android로 옮기기](https://data.develog.develrocket.com/upload/develog/muchan/1792206352286-hd4xz4/_____2026-10-17_114953.png)
![[Unity] 제네릭 박싱 예방](https://data.develog.develrocket.com/upload/develog/gmumdev/1792123312021-bhxx2i/_____.png)