CharacterController
Properties
Height | 캐릭터의 Capsule Collider 높이. 이것을 변경하는 것은 양과 음의 방향에서 Y의 축을 따라서collider을 스케일 할 것입니다. |
Radius | 캡슐Collider의 반지름의 길이. 이것은Collider의 너비입니다. |
Slope Limit | 지시된 값과 같거나 작은 기울기로 collider를 제한합니다e. |
Step Offset | 그것이 지시된 값보다 바닥에 더욱 가까울 때만 오직 캐릭터는 계단을 셋업할 것입니다. |
Min Move Distance | 캐릭터가 지시된 값 아래로 움직이려고 한다면, 그것은 움직이지 않을 것입니다. 이것은 지터를 줄이기 위해 사용될 수 있습니다. 대부분의 경우에 이 값은 0에서 왼쪽에 있어야 합니다. |
Skin width | 두 개의 colliders는 그들의Skin Width 만큼 깊게 서로를 침투할 수 있습니다. 더 큰Skin Widths는 지터를 줄입니다. 낮은Skin Widths는 캐릭터를 꼼짝 못하게 할 수 있습니다. 좋은 세팅은 이 값을 반지름의 10%로 만드는 것입니다. |
Center | 이것은 세계 공간에서 캡슐Collider를 오프셋할 것이고 캐릭터가 어떻게 회전하는지에 영향을 주지 않을 것입니다. |
Details
전통적인 Doom 스타일 일인칭 컨트롤은 물리적으로 사실적이지 않습니다. 캐릭터는 1 시간에 90 마일을 달릴 수 있고 즉시 멈추고 무상입니다. 이것은 너무나 사실적이지 않기 때문에 Rigidbodies와 이런 행동을 생성하기 위한 물리의 사용은 비실용적이고 잘못될 것입니다. 해결책은 특화된 캐릭터 컨트롤러 입니다. 그것은 단순히 스크립트로 부터 어떤 방향에서 움직이는지 들을 수 있는 캡슐 모양의 Collider
입니다. 컨트롤러는 움직임을 실행할 것이나 충돌에 의해 제한을 받을 것입니다. 그것은 벽 사이로 미끄러지고 계단을 올라가고 (만약 그들이 Step Offset보다 아래에 있다면) Slope Limit안에서 경사면을 걸어갑니다.
컨트롤러는 그것의 스스로에 초점을 맞추기 위해 반응하지 않을 것이고 자동적으로 Rigidbodies를 밀어버리지 않습니다.
사용자가 Rigidbodies와 캐릭터 컨트롤러와 함께 있는 물체를 넣기를 원한다면 사용자는 스크립팅을 통해서 OnControllerColliderHit() 함수와 함께 그것이 충돌하는 어떠한 물체에도 힘을 적용할 수 있습니다.
반면, 사용자가 플레이어 캐릭터가 물리에 의해 영향을 받기를 원한다면 사용자는 캐릭터 컨트롤러 대신에 Rigidbody을 사용하는게 더 좋을 지도 모릅니다.
Fine-tuning your character
사용자는 사용자의 캐릭터의 메쉬를 맞추기 위해서 Height와 Radius을 바꿀 수 있습니다. 사람같은 캐릭터를 위해서 대략 2 미터를 사용하는 것을 권고합니다. 사용자는 사용자의 피벗 포인트가 캐릭터의 정확한 Center에 있지 않는 경우에 캡슐의 중심을 바꿀 수 있습니다.
Step Offset 또한 이것에 영향을 줄 수 있고 이 값이 2 미터 사이즈 사람을 위해서 0.1과 0.4 사이에 있을 수 있다는 것을 확실시 합니다.
Slope Limit 도 또한 작으면 안됩니다. 90도의 값을 사용하는 것이 종종 최선의 결과를 냅니다. 캐릭터 컨트롤러는 캡슐 모양 때문에 벽을 오를 수 없을 것입니다.
Don't get stuck
The Skin Width는 사용자의 캐릭터 컨트롤러를 튜닝할 때 제대로 되는 가장 중요한 속성들 중 하나입니다. 사용자의 캐릭터가 꼼짝하지 않다면 그것은 사용자의 Skin Width가 너무 작기 때문일 것입니다. Skin Width는 물체가 컨트롤러를 뚫게 할 것이나 그것은 지터를 제거하고 꼼짝 못하게 되는 상황이 되는 것을 방지합니다.
Skin Width을 0.01보다 최소한 더 크게 그리고 Radius의 10%보다 더 크게 유지하는 것이 좋은 연습입니다.
0에서 Min Move Distance를 유지하는 것을 추천합니다.
캐릭터 컨트롤러 스크립트 레퍼런스는 here에서 살펴볼 수 있습니다
사용자는 저희의 웹사이트의 Resources에서 캐릭터 컨트롤러를 움직이고 사전 설정을 위한 애니메이션을 보여주는 예제 프로젝트를 다운로드 할 수 있습니다.
Hints
- 사용자가 사용자의 캐릭터가 자주 꼼짝 못하고 있는 것을 발견한다면 Skin Width를 조정하도록 해야 합니다.
- 사용자가 자신의 스크립트를 쓴다면 캐릭터 컨트롤러는 물리를 사용해서 물체에 영향을 미칠 수 있습니다.
- 캐릭터 컨트롤러는 물리를 통해서 물체에 의해 영향을 받을 수 없습니다.
- 출처: 유니티코리아위키 (CC BY-NC-SA 2.0)