[Unity] 캐릭터 컨트롤러에 대해서

김소연·2025년 3월 21일

물리 엔진이 아닌 캐릭터의 움직임을 프레임 기반으로 처리
주로 3D 캐릭터의 제어에 사용

rigidbody 물리를 사용하지 않는 3인/1인 플레이어에 주로 사용

(기존에 rigid+콜라이더를 사용하는 방식은, 유니티의 물리엔진을 기반으로 작동.
반면 캐릭터 컨트롤러는 프레임 기반이므로, fixed Updated보단 그냥 update문에서 사용)

특징
1. 단순한 이동을 쉽게 구현할 수 있도록 메서드가 제공됨
(이동 방향/ 이동속력)
2. 중력/점프를 직접 개발해야함

  • 수평방향에 좀 더 용이 (경사면을 오른다)
    slope Limit (경사 한계), step offset (경사의 높이 한계), skin width(경계면의 두께), Min Move Distance (움직인 거리에 대한 최솟값)
  • 경사면이 필요치 않으면, rigid+collider가 더 낫다
  1. 충돌 처리는 물리엔진을 사용하지 않고 캐릭터의 충돌을 감지,

  2. 바닥 검출 : 바닥 위에 붙어있는지 떠있는지 체크해주는 isGround가 있음

  3. 움직임 제한 : 지형의 경사를 따라 이동하게 하거나, 지정된 영역 내에서 움직이도록 할 수 있음

0개의 댓글