캐릭터 컨트롤러는 유니티에서 기본적으로 제공하는 이동 관련 컴포넌트다.
기본 제공인 만큼 웬만한 이동 관련 기능들은 내장되어 있고, 바로바로 사용할 수 있단 점에서 매우 편리하나 결국 정교한 물리 관련 행동은 Rigidbody를 통해서 해결해야하며 여러가지 잔버그들이 좀 있는 불안정한 컴포넌트이다.
그래서 캐릭터 컨트롤러를 유용하게 사용하려면 사용자가 커스텀해서 사용하여 최대한 안정화시켜서 사용하면 좋을 것이다.
| center | radius | height | slopeLimit | velocity |
|---|---|---|---|---|
| 충돌체의 중심 위치 | 충돌체의 반지름 | 충돌체의 높이 | 이동할 수 있는 최대 경사도 (기본 45º) | 마지막 Move()에서 호출된 이동 속도 (읽기 전용 프로퍼티) |
| stepOffset | skinWidth | minMove Distance | isGrounded | detectCollisions |
|---|---|---|---|---|
| 자동으로 오를 수 있는 최대 계단 높이 (hight보다 낮아야함) | 충돌 감지를 위한 여유 거리 | 최소 이동거리 | 캐릭터가 지면에 닿아있는지 여부 판별 (버그 많음!) | 충돌 감지 여부 |
| Move | SimpleMove | OnControllerColliderHit |
|---|---|---|
| 지정한 방향과 거리로 이동 | 속도를 받아 중력 자동 적용 | Move()가 작동중일 때 콜라이더에 부딪힐 때 호출 |
Unity API <- 유니티 API문서로 이동하면 상세하게 알 수 있다.