본문 바로가기
카테고리 없음

[유니티] 캐릭터컨트롤러(CharacterController) 속성 및 스크립팅 정리

by TODAYCODE 2021. 9. 12.
반응형

유니티에서 플레이어의 움직임을 구현할 때 리지드바디와 견주어서 가장 많이 사용되는 것이 캐릭터컨트롤러이다.

캐릭터컨트롤러는,

물리엔진을 사용하지 않고 간단한 로직만으로 움직임을 구현해주고

자체적으로 콜라이더를 가지고 있기 때문에 어떻게 보면 편리하기도 하다.

그러나... 물리엔진을 쓰지 않는다는 것은 중력작용이나 여러가지 사항들을 직접 코딩해야한다는 뜻이기도 하다.

 

아무튼 캐릭터컨트롤러로 움직임을 구현해보는 것은 다음 포스팅에서 진행하도록하고

이번에는 캐릭터컨트롤러가 가지고있는 속성값들과 스크립트 상에서 사용가능한 것들을 정리해보고자 한다.

 


 

가장 먼저 유니티의 매뉴얼을 살펴보자.

 

캐릭터 컨트롤러 - Unity 매뉴얼

캐릭터 컨트롤러(Character Controller) 는 Rigidbody 물리를 활용하지 않는 3인 또는 1인 플레이어에 주로 사용됩니다.

docs.unity3d.com

 

캐릭터 컨트롤러에는 다양한 속성값들이 존재하는데,

움직임을 구현하는 것에 명확한 목적성 때문인지 리지드바디에는 없는 편리한 기능들이 존재한다.

 

  • Slope Limit 

올라갈수있는 경사도를 설정한다. 45를 입력하면 45도의 경사까지는 플레이어가 올라갈 수 있다.

 

  • Step Offset

올라갈수있는 계단의 높이를 설정한다.

당연히 캐릭터의 키보다 작은 값을 입력해야하고 그렇지 않으면 오류가 발생한다.

 

  • Skin Width

부딪칠때 겹칠 수 있는 두께를 설정한다.

직역하면 피부두께인데, 말 그대로 피부가 눌리는 것처럼 두 개의 오브젝트가 만났을 때 이 값만큼은 겹쳐진다.

매뉴얼 상에는 반지름의 10%로 설정하는 것을 권장하고 있다.

 

  • Min Move Distance

이동할 수있는 최소값을 설정한다. 해당 값보다 적은 거리는 움직이지 않는다.

 


 

주어지는 속성 값들만 봐도 알겠지만, 캐릭터의 움직임을 설정하기 위한 값들이 존재한다.

때문에, 캐릭터컨트롤러는 리지드바디의 물리엔진을 사용하지 않는 3인칭이나 1인칭 게임의 경우에 사용하는 것을 권장된다.

 

이제 다음으로는 캐릭터컨트롤러에 포함되어있는 스크립트들을 확인해보자.

이것 역시도 매뉴얼에 잘 정리되어있다.

 

Unity - 스크립팅 API: CharacterController

Success! Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable. 닫기

docs.unity3d.com

캐릭터컨트롤러의 스크립팅도 전부 한번에 공부하려는 것은 비효율적이니,

개발을 진행하면서 다양한 방식의 구현을 시도해보고 그때마다 조금씩 체득하는 것이 좋다.

 

 

 

반응형

댓글