Untitled

캐릭터 컨트롤러 컴포넌트 레퍼런스 - Unity 매뉴얼

개요


캐릭터 컨트롤러 컴포넌트는 Rigidbody 의 물리 연산을 활용하지 않는 3인 또는 1인 플레이어에 주로 사용되는 컴포넌트.

자체적으로 Capsule Colider를 가지고 있어서 따로 Colider 컴포넌트를 추가하지 않아도 물체와 충돌하면 움직임이 제한되고, Slope Limit와 Step Offset 설정으로 경사와 계단을 오르는 움직임을 구현 할 수 있음.

프로퍼티


프로퍼티: 기능:
Slope Limit 콜라이더가 명시된 값보다 작은 경사(단위:도)의 슬로프만 오르도록 제한합니다.
Step Offset 명시된 값보다 계단이 땅에 가까울 경우에만 캐릭터가 계단을 오릅니다. 이 값은 캐릭터 컨트롤러의 높이보다 커서는 안됩니다. 값이 더 클 경우 오류가 발생합니다.
Skin width 두 콜라이더가 서로 스킨 너비 만큼 관통할 수 있습니다. 스킨 너비가 클수록 지터링이 감소합니다. 스킨 너비가 작을 경우에는 캐릭터가 움직이지 못할 수 있습니다. 스킨 너비 값을 반지름의 10%로 설정하는 것이 좋습니다.
Min Move Distance 캐릭터가 지정한 값보다 낮게 움직이려고 할 경우 아예 움직이지 않게 됩니다. 지터링을 줄이기 위해 이 옵션을 사용할 수 있습니다. 대부분의 경우 이 값은 0으로 두어야 합니다.
Center 월드 공간에서 캡슐 콜라이더를 오프셋하며, 캐릭터의 피벗에는 영향을 주지 않습니다.
Radius 캡슐 콜라이더의 반지름 길이입니다. 본질적으로는 콜라이더의 너비입니다.
Height 캐릭터의 Capsule Collider 높이입니다. 이 값을 변경하면 콜라이더가 Y축을 따라 양의 방향과 음의 방향으로 스케일합니다.
isGrounded 캐릭터 컨트롤러의 발 위치의 충돌을 체크해 땅에 닿아 있는지를 Bool로 반환한다.

함수


Move Supplies the movement of a GameObject with an attached CharacterController component.
SimpleMove Moves the character with speed.

캐릭터 컨트롤러의 동작은 Move()SimpleMove() 함수를 통해 이뤄진다.

SimpleMove는 중력을 알아서 적용시키며, Time.deltaTime 또한 곱해줄 필요가 없다.

대신, Y축 백터는 무시하므로, 수직 이동을 구현하는데에는 애로사항이 있다.