Unity 좌표계
Unity는 오른손 좌표계를 사용한다고 한다.
오른손 좌표계는 3D 공간을 표현하는 방식 중 하나로 오른손을 기준으로 좌표축을 정의한다.
여기서 "오른손"은 손가락을 곧게 펴고 오른손을 내밀었을 때, 엄지손가락이 X축의 방향을 가리키고, 검지손가락이 Y축의 방향을 가리키며, 중지손가락이 Z축의 방향을 가리키는 것을 의미.
입력 처리
고전적 입력 시스템과 새로운 Input System 패키지
public class PlayerController : MonoBehaviour
{
public float speed = 10f;
void Update()
{
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
transform.Translate(movement * Time.deltaTime * speed);
}
}
매 프레임마다 플레이어 입력을 받아 객체를 이동
패키지 설치 및 활성화
Window -> Package Manager -> Input System 설치
Edit -> Project Settings -> Player -> Active Input Handling을 Both 또는 Input System (New)로 설정
Input Actions 생성
Assets -> 우클릭 -> Create -> Input Actions 선택 후 설정
public class PlayerController : MonoBehaviour
{
private PlayerInputActions inputActions;
private Vector2 moveInput;
private void Awake()
{
inputActions = new PlayerInputActions();
}
private void OnEnable()
{
inputActions.Enable();
inputActions.Player.Move.performed += OnMove;
inputActions.Player.Move.canceled += OnMove;
}
private void OnDisable()
{
inputActions.Disable();
inputActions.Player.Move.performed -= OnMove;
inputActions.Player.Move.canceled -= OnMove;
}
private void OnMove(InputAction.CallbackContext context)
{
moveInput = context.ReadValue<Vector2>();
}
private void Update()
{
Vector3 move = new Vector3(moveInput.x, 0, moveInput.y);
transform.Translate(move * Time.deltaTime);
}
}
Unity의 좌표계는 오른손 좌표계를 사용하며, X축은 좌우, Y축은 상하, Z축은 전후를 나타낸다. 입력 처리에는 고전적인 Input 클래스와 새로운 Input System 패키지가 있다. 고전적인 입력 시스템은 간단하고 빠르게 설정할 수 있으며, Input.GetAxis를 사용하여 입력을 받는다. 반면, 새로운 Input System 패키지는 더 유연하고, PlayerInputActions와 같은 클래스를 사용하여 입력을 처리한다.