Unity) InputManager

강성현
∙∙조회 5
Unity) InputManager

Unity에는 입력을 다루는 방식이 두가지가 있습니다.

  • Unity 6버전부터 있는 Input System
  • 이전버전에 있는 Input Manager

이번에는 이전버전에 존재하는 Input Manager에 대해 다뤄보겠습니다.

 


1. Input.GetKey, GetKeyDown, GetKeyUp

세 함수 모두 어느 키를 트리거로 받을지 인자로 받습니다.

열거형 KeyCode 를 사용하며, KeyCode.Space 같이 사용합니다.

  • 키 입력은 Update에 배치해놓는 것이 좋습니다.

 

1-1) Input.GetKey

해당 키를 누르고 있는 동안 true 를 반환합니다.\

 

1-2) Input.GetKeyDown

해당 키를 누른 그 프레임만 true 를 반환합니다.

 

1-3) Input.GetKeyUp

해당 키에서 손을 뗀 그 프레임만 true 를 반환합니다.

 

 


2. Input GetAxis, GetAxisRaw

축의 이름으로 진행방향을 받아옵니다.

 

==float horizontal = Input.GetAxisRaw("Horizontal");==

돌려주는 것은 bool 이 아닌 float 형으로 반환합니다.

 

2-1) GetAxis

필터를 거친 값을 돌려줍니다.

GetAxis 는 중간 값을 거쳐 올라가기 때문에 소수점 수까지 반환합니다.

 

2-2) GetAxisRaw

필터를 거치지 않은 값을 돌려줍니다.

GetAxisRaw는 ==-1, 0 , 1== 만 반환합니다.

 

하려는 일고르는 것
눌렀는지 여부만 알면 되는 것GetAxisRaw
값이 서서히 오르내리는 편이 나은 것GetAxis

 


3. Mouse Input

 

3-1) 마우스 좌표 읽기

==Input.mousePosition==

마우스포인터가 위치한 화면의 픽셀 좌표를 반환해주고,

원점은 왼쪽 아래입니다.

csharp
if (Input.GetMouseButtonDown(MOUSE_BUTTON_LEFT))
{
   Debug.Log($"InputProbe: 마우스 포인터 좌표 {Input.mousePosition}");
}

 

3-2) 마우스 움직임 읽기

==Mouse X== 와 ==Mouse Y== 는 직전 프레임에서 이번 프레임 사이에 마우스가 x와 y방향으로 움직인 양을 반환해줍니다.

csharp
float mouseX = Input.GetAxis("Mouse X");
float mouseY = Input.GetAxis("Mouse Y");
Debug.Log($"MouseDeltaSample: 마우스가 가로 {mouseX}, 세로 {mouseY}만큼 움직였습니다.");