Input.GetAxis() 메서드에 입력하게 되는 Horizontal 축과 Vertical 축은 무엇일까요?
대부분의 조작 키 설정 창은 '기능의 이름'과 '매핑된 키' 쌍으로 구성됩니다.
ex) 발사 -> 마우스 왼쪽 버튼
점프 -> 스페이스바
다음과 같이 매핑된 키를 마음대로 변경할 수도 있습니다.
ex) 발사 -> 마우스 오른쪽 버튼
점프 -> 엔터
이것이 가능한 이유가 입력 장치의 구체적인 식별자를 사용하지 않기 때문입니다.
코드에서
if ( 마우스 왼쪽 버튼을 누름) {
//총 발사
}
위 방식과 같은 코드의 경우 발사 키를 바꿀 수 없으나
if ("발사"에 대응되는 버튼을 누름){
//총 발사
}
위 방식은 '발사'라는 입력 이름에 대응되는 버튼을 감지하기 때문에 조작 키를 바꿀 수 있습니다.
즉, 유니티에서 사용하는 Horizontal, Vertical과 같은 축이 위와 같은 입력 이름입니다.
따라서 축을 사용하면 Input.GetKey() 메서드로 일일이 KeyCode 값을 가져오지 않아도 됩니다.
유니티의 Edit - Project Settings... - Input Manager 탭에서 입력 매니저를 확인할 수 있으며, 여기서 Axes 리스트를 펼치면 미리 설정되어 있는 입력축들이 표시되며 Horizontal, Vertical 축에 대응하는 입력 버튼 설정이 되어있습니다.
<레트로의 유니티 게임 프로그래밍 에센스 p267~270>
'Unity' 카테고리의 다른 글
(Unity) 점수 저장, 불러오기 or 최고점수 나타내기 - PlayerPrefs (0) | 2022.08.19 |
---|---|
(Unity) Time.deltaTime (0) | 2022.08.19 |
(Unity) target 삼을 대상 찾아서 할당하기, FindObjectOfType() (0) | 2022.08.19 |
(Unity) 게임 오브젝트 간의 충돌 - OnCollision, OnTrigger (0) | 2022.08.19 |
(Unity) Rigidbody의 AddForce()와 velocity 차이 (0) | 2022.08.18 |