Unity/초보자가 알면 좋을 팁

유니티 Update / LateUpdate / FixedUpdate 사용 원칙 (꿀팁) - 2

추운날_너를_기다리며 2026. 3. 3. 13:58

1️⃣ Unity 실행 사이클 기준 이해

Unity의 기본 프레임 흐름은 아래와 같다:

FixedUpdate (0~N회)
Update (1회)
LateUpdate (1회)
렌더링

 

호출 특성 정리

함수 호출 타이밍 호출 횟수 기준 시간
Update 매 프레임 1회 가변 (Frame 기준)
LateUpdate Update 이후 1회 가변
FixedUpdate 고정 시간 간격 0~N회 고정 (Physics 기준)

 

 


2️⃣ 각 함수 사용 "원칙"

✅ 1. Update — “입력 & 게임 로직 계산”

✔ 역할

  • 플레이어 입력 처리
  • 상태 머신 갱신
  • AI 판단
  • 쿨타임 감소
  • 애니메이션 트리거 설정
  • 네트워크 패킷 처리
  • 이동 계산 (물리 기반이 아니라면)

✔ 핵심 원칙

입력은 반드시 Update에서 받는다.

이유:

  • 입력은 프레임 기반
  • FixedUpdate에서 입력 받으면 타이밍 불일치 발생
  • 입력 누락 가능

✔ 사용 기준

  • Time.deltaTime 사용
  • Transform 이동 (Rigidbody 사용 안 할 때)
  • 상태 변경 로직

✅ 2. FixedUpdate — “물리 전용”

✔ 역할

  • Rigidbody 이동
  • AddForce
  • 물리 충돌 기반 이동
  • 물리 연산 관련 값 조정

✔ 핵심 원칙

Rigidbody를 사용한다면 이동은 FixedUpdate에서 처리

이유:

  • 물리는 고정 시간 단위로 계산됨
  • Update에서 Rigidbody 이동하면 프레임마다 값이 달라짐
  • 튐, 끊김, 비동기 충돌 발생

✔ 사용 기준

  • Time.fixedDeltaTime 사용
  • Rigidbody.MovePosition()
  • Rigidbody.velocity 설정

✅ 3. LateUpdate — “결과 정리 단계”

✔ 역할

  • 카메라 추적
  • 위치 보정
  • 최종 상태 반영
  • 애니메이션 보정
  • UI 추적

✔ 핵심 원칙

LateUpdate는 “모든 로직이 끝난 뒤 정리하는 단계”

이유:

  • Update에서 캐릭터 이동
  • 그 이후 카메라가 따라와야 함
  • 순서가 반대면 1프레임 딜레이 발생