우리가 보통 말하는:
- Rigidbody
- CharacterController
- Root Motion
이 3개가 대표적이지만, 사실 이동 방식은 “물리 기반이냐 / 수동 계산이냐 / 애니메이션 기반이냐 / 경로 기반이냐”에 따라 여러 갈래로 나뉜다.
🔥 정리 표
| 방식 | 물리 사용 | 충돌 | 제어감 | 네트워크 적합성 | 추천 장르 |
| Rigidbody | O | 자동 | 보통 | 낮음 | 물리게임 |
| CharacterController | 반자동 | 자동 | 좋음 | 보통 | FPS/TPS |
| Root Motion | 애니메이션 | 보조 | 매우 자연 | 낮음 | 액션 |
| Transform 직접 | X | 수동 | 매우 좋음 | 좋음 | 2D |
| NavMesh | 경로 기반 | 자동 | 낮음 | 보통 | AI |
| Kinematic Controller | 수동 | 정밀 | 매우 좋음 | 매우 좋음 | 온라인 |
1️⃣ Rigidbody 기반 이동 (물리 기반)
- Rigidbody.AddForce
- Rigidbody.MovePosition
- 속도 직접 제어 (rb.velocity)
📌 특징
- 물리 엔진과 완전히 통합
- 충돌, 마찰, 반동 자동 처리
- 물리 오브젝트와 상호작용 좋음
📌 단점
- 제어감이 둔할 수 있음
- 세밀한 플랫폼 점프 튜닝이 어려움
✔ 주로 쓰는 게임
- 물리 퍼즐
- 로그라이크
- 밀고 당기는 오브젝트 많은 게임
2️⃣ CharacterController 기반 이동
Unity 내장 컴포넌트인
Unity CharacterController
- CharacterController.Move
- SimpleMove
📌 특징
- 물리와 충돌은 처리하지만
- 실제 물리 시뮬레이션은 아님
- 계단, 경사 처리 편함
📌 단점
- Rigidbody와 상호작용 제한
- 물리적 반응이 약함
✔ 주로 쓰는 게임
- FPS
- TPS
- 액션 RPG
3️⃣ Root Motion 기반 이동
애니메이션 데이터에 포함된 이동값을 그대로 사용
📌 특징
- 모션과 이동 완벽 일치
- 자연스러운 움직임
- 전투 액션에 강함
📌 단점
- 네트워크 동기화 어려움
- 정밀 제어 힘듦
✔ 주로 쓰는 게임
- 콘솔 액션
- 소울라이크
- 격투 게임
3️⃣ Root Motion 기반 이동
애니메이션 데이터에 포함된 이동값을 그대로 사용
📌 특징
- 모션과 이동 완벽 일치
- 자연스러운 움직임
- 전투 액션에 강함
📌 단점
- 네트워크 동기화 어려움
- 정밀 제어 힘듦
✔ 주로 쓰는 게임
- 콘솔 액션
- 소울라이크
- 격투 게임
4️⃣ Transform 직접 이동 (수동 이동)
transform.position += direction * speed * Time.deltaTime;
📌 특징
- 가장 단순
- 완전 수동 제어
- 2D 게임에서 많이 사용
📌 단점
- 물리 충돌 자동 처리 안 됨
- Rigidbody와 충돌 시 문제 발생
✔ 주로 쓰는 게임
- 2D 탑다운
- 모바일 캐주얼
- 프로토타입
5️⃣ NavMesh 기반 이동 (AI 이동)
Unity의
Unity NavMesh
+
NavMeshAgent
📌 특징
- 자동 경로 탐색
- 장애물 회피
- 목적지 지정만 하면 됨
📌 단점
- 세밀한 컨트롤 어려움
- 복잡한 액션 게임엔 부적합
✔ 주로 쓰는 게임
- RTS
- RPG NPC
- 몬스터 AI
6️⃣ Kinematic Character Controller (커스텀 물리)
최근 많이 쓰는 방식
- Rigidbody를 Kinematic으로 두고
- 직접 충돌 계산
- Sweep 테스트, Raycast 기반 이동
대표적인 오픈소스 예:
Kinematic Character Controller
📌 특징
- 물리보다 안정적
- 네트워크 친화적
- 완전 제어 가능
✔ 주로 쓰는 게임
- 온라인 FPS
- MMO
- 고급 액션 게임
7️⃣ Hybrid 방식 (혼합 구조)
요즘 AAA 게임은 거의 혼합한다.
예:
- 이동 → CharacterController
- 밀림 → Rigidbody AddForce
- 공격 중 → Root Motion
이걸 “상황별 이동 모드 전환”이라고 보면 된다.
8️⃣ 네트워크 기반 예측 이동
온라인 게임에서는 추가 개념이 있다:
- Client Prediction
- Server Reconciliation
- Interpolation / Extrapolation
이건 이동 "기법"이라기보다
이동을 동기화하는 방식이다.
'Unity > 초보자가 알면 좋을 팁' 카테고리의 다른 글
| Unity Lerp vs Slerp 단순 이해 (예제 코드 포함) (0) | 2026.03.26 |
|---|---|
| Unity Lerp vs Slerp 차이 한 번에 이해하기! (0) | 2026.03.26 |
| LateUpdate에 캐릭터 이동을 넣지 않는 이유에 대하여 (0) | 2026.03.03 |
| Unity 기본 아키텍쳐 흐름은 이해해보자 - Rigidbody, Update, LateUpdate, FixedUpdate (0) | 2026.03.03 |
| 유니티 Update / LateUpdate / FixedUpdate 사용 원칙 (꿀팁) - 4 (0) | 2026.03.03 |