Unity

(Unity) GetAxis(), GetKey(), 입력 매니저?

Janny_ 2022. 8. 18. 17:04

Input.GetAxis() 메서드에 입력하게 되는 Horizontal 축과 Vertical 축은 무엇일까요?

 

대부분의 조작 키 설정 창은 '기능의 이름'과 '매핑된 키' 쌍으로 구성됩니다.

ex) 발사 -> 마우스 왼쪽 버튼

      점프 -> 스페이스바

다음과 같이 매핑된 키를 마음대로 변경할 수도 있습니다.

ex) 발사 -> 마우스 오른쪽 버튼

      점프 -> 엔터

이것이 가능한 이유가 입력 장치의 구체적인 식별자를 사용하지 않기 때문입니다.

 

코드에서

if ( 마우스 왼쪽 버튼을 누름) {

     //총 발사

}

 

위 방식과 같은 코드의 경우 발사 키를 바꿀 수 없으나

 

if ("발사"에 대응되는 버튼을 누름){

    //총 발사

}  

 

위 방식은 '발사'라는 입력 이름에 대응되는 버튼을 감지하기 때문에 조작 키를 바꿀 수 있습니다.

 

즉, 유니티에서 사용하는 Horizontal, Vertical과 같은 축이 위와 같은 입력 이름입니다.

따라서 축을 사용하면 Input.GetKey() 메서드로 일일이 KeyCode 값을 가져오지 않아도 됩니다.

 

유니티의 Edit - Project Settings... - Input Manager 탭에서 입력 매니저를 확인할 수 있으며, 여기서 Axes 리스트를 펼치면 미리 설정되어 있는 입력축들이 표시되며 Horizontal, Vertical 축에 대응하는 입력 버튼 설정이 되어있습니다.

 

<레트로의 유니티 게임 프로그래밍 에센스 p267~270>