CharacterController
유니티가 지원해주는 Character Controller로 이동에 관해 다양한 조작이 가능하다.
유니티에서는 Rigidbody 물리를 활용하지 않는 플레이어에 사용할 것을 권장한다.

ㆍSlope Limit : 캐릭터가 올라갈 수 있는 각도. (설치된 오브젝트의 각도 정도)
ㆍStep Offset : 어느 높이까지의 공중에 떠있는 물체에 올라갈 수 있는지 설정.
ㆍSkin Width : 콜라이더 끼리 관통할 수 있는 스킨 너비. 0.01 < SkinWidth < Radius의 10%
ㆍMin Move Distance : 최소 이동 거리
ㆍCenter,Radius,Height = Collider 세부설정.
<Script>
[Header("Movement")]
[SerializeField] float moveSpeed; // 이동 속도
CharacterController controller; // 캐릭터 제어 컴포넌트.
[Header("@")]는 제목을 @로 정할 때 사용한다.
[SerializeField]는 private한 변수들을 Scene의 Inspector에 나타낼 때 사용한다.
moveSpeed를 노출시켜 Scene에서 조절하기 위해 Serialize를 해준다.
private void Movement()
{
float x = Input.GetAxisRaw("Horizontal"); // 키보드 좌,우 (수평)
float z = Input.GetAxisRaw("Vertical"); // 키보드 상,하 (후면)
Vector3 direction = (transform.right * x) + (transform.forward * z);
controller.Move(direction * moveSpeed * Time.deltaTime);
}
3D에서는 x가 좌/우, z가 앞/뒤, y가 위/아래를 담당하게 된다.
transform.방향 = 내 기준 방향(로컬 좌표)이다.
controller.Move(방향 * 속도 * Time.deltaTime);
private void Update()
{
Movement();
}
'Unity > Unity3D' 카테고리의 다른 글
| Unity3D_Week1 : 카메라 시점 변경 (0) | 2021.12.23 |
|---|