Unity/초보자가 알면 좋을 팁

Unity에서 캐릭터 이동 방식 종류에 대하여

추운날_너를_기다리며 2026. 3. 3. 18:16

우리가 보통 말하는:

  • 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

이건 이동 "기법"이라기보다
이동을 동기화하는 방식이다.