이걸 정확히 이해하면 Update / LateUpdate 역할 구분이 완전히 정리된다.
결론부터 말하면:
❌ LateUpdate에서 캐릭터 “이동 로직”을 처리하는 것은 권장되지 않는다.
✅ LateUpdate는 “UI상 표현하는 단계, 결과를 따라가는 단계”다.
그리고 중요한 포인트:
이동은 ‘표현’이 아니라 게임 상태(State) 변경이다.
1️⃣ 캐릭터 이동은 표현인가?
아니다.
캐릭터 이동은 단순히 화면에 보이는 연출이 아니라:
- 충돌 결과에 영향
- 스킬 범위 판정에 영향
- 네트워크 동기화 기준 위치
- AI 타겟팅 기준
- 애니메이션 상태 전이 기준
즉,
이동은 게임 상태를 바꾸는 행위다.
표현(Presentation)은:
- 카메라
- 흔들림
- 이펙트
- UI 위치 추적
처럼 “상태를 바꾸지 않는 것”이다.
2️⃣ LateUpdate의 정확한 역할
Unity 실행 순서를 다시 보자:
FixedUpdate (물리)
Update (입력/로직)
LateUpdate (후처리)
렌더링
LateUpdate는:
Update가 끝난 이후
“최종 결과를 기준으로 동작”하는 단계다.
그래서 카메라가 여기 있는 것이다.
3️⃣ LateUpdate에서 이동하면 생기는 문제
문제 1️⃣ 실행 순서 혼란
예:
- A 스크립트 → Update에서 이동
- B 스크립트 → LateUpdate에서 이동
→ 어떤 이동이 최종값인가?
순서 의존성이 생긴다.
문제 2️⃣ 다른 시스템이 이전 위치를 참조함
AI, 충돌, 타겟팅 등이 Update에서 위치를 참조했는데
LateUpdate에서 위치를 바꾸면?
→ 그 프레임 안에서 “두 개의 위치”가 존재하게 된다.
이건 설계적으로 매우 위험하다.
문제 3️⃣ Rigidbody와 충돌
Rigidbody는 FixedUpdate 기준으로 위치를 계산한다.
LateUpdate에서 transform을 수정하면:
- 물리 계산 이후 위치를 바꿔버리는 셈
- 다음 FixedUpdate에서 물리가 다시 덮어씀
- 미세 떨림 발생
문제 4️⃣ 네트워크 구조에서 치명적
MMORPG 같은 경우:
- Update → 입력 처리
- 서버 → 위치 계산
- LateUpdate에서 또 위치 변경?
→ 서버 authoritative (권한 집중형/서버 권한)구조가 깨진다.
4️⃣ “그럼 이동도 표현 아니냐?”에 대한 정확한 답
이동에는 두 종류가 있다.
✅ 상태 이동 (State Change)
- transform.position 변경
- Rigidbody 이동
- CharacterController.Move
→ 게임 세계의 실제 좌표 변경
→ 판정에 영향
→ 네트워크에 영향
이건 표현이 아니다.
✅ 시각적 이동 (Presentation)
예:
- 카메라가 플레이어 따라가기
- 보간(interpolation)
- 화면 흔들림
- 스프라이트 뒤틀림
이건 상태를 바꾸지 않는다.
그래서 LateUpdate에 적합하다.
5️⃣ 언제 LateUpdate에서 “이동”해도 되나?
예외는 있다.
✔ 카메라 이동
플레이어 결과를 따라가는 것
✔ IK 보정
애니메이션 후 위치 미세 조정
✔ 네트워크 보간
렌더링 전 시각적 위치 보정
이 경우는:
“논리적 위치”는 그대로 두고
“렌더링 위치”만 보정하는 것
이다.
6️⃣ 구조적으로 보면 이렇게 정리된다
이동은 언제 해야 하나?
| 상황 | 사용 위치 |
| Rigidbody 이동 | FixedUpdate |
| CharacterController 이동 | Update |
| Transform 직접 이동 | Update |
| 카메라 이동 | LateUpdate |
| UI 추적 | LateUpdate |
7️⃣ 핵심 개념 한 줄 정리
LateUpdate는 “상태를 만드는 곳”이 아니라
“완성된 상태를 따라가는 곳”이다.
8️⃣ 한눈에 보는 논리적 정리
게임 루프는 이렇게 나뉜다:
1️⃣ 입력 → 의도 생성
2️⃣ 로직 → 상태 변경
3️⃣ 물리 → 상태 확정
4️⃣ 표현 → 시각화
LateUpdate는 4️⃣에 해당한다.
캐릭터 이동은 2️⃣ 또는 3️⃣이다.
🔥 결론
- 캐릭터 이동은 게임 상태 변경이다.
- LateUpdate는 상태 변경이 끝난 후의 후처리 단계다.
- 따라서 캐릭터 이동은 Update 또는 FixedUpdate에서 해야 한다.
- LateUpdate는 카메라, UI, 시각 보정용이다.
'Unity > 초보자가 알면 좋을 팁' 카테고리의 다른 글
| Unity Lerp vs Slerp 차이 한 번에 이해하기! (0) | 2026.03.26 |
|---|---|
| Unity에서 캐릭터 이동 방식 종류에 대하여 (0) | 2026.03.03 |
| Unity 기본 아키텍쳐 흐름은 이해해보자 - Rigidbody, Update, LateUpdate, FixedUpdate (0) | 2026.03.03 |
| 유니티 Update / LateUpdate / FixedUpdate 사용 원칙 (꿀팁) - 4 (0) | 2026.03.03 |
| 유니티 Update / LateUpdate / FixedUpdate 사용 원칙 (꿀팁) - 3 (0) | 2026.03.03 |