학습 매체 : 책
책이름 : 레트로의 유니티 게임 프로그래밍 에센스
저자 : 이제민
본 내용은 해당 강의 내용을 공부하면서 정리한 글입니다.
- GetAxis( ) 메서드에 입력한 Horizontal 축과 Vertical 축은 무엇이며 왜 사용하는가?
- GetAxis( ) 메서드의 출력값은 어째서 true, false가 아닌 숫자인가?
1번 : 입력키 커스터마이제이션을 구현하기 위해
2번 : 조이스틱 같은 다양한 입력 장치에 대응하기 위해
if (Input.GetKey(KeyCode.UpArrow) == true)
{
playerRigidbody.AddForce(0f, 0f, speed);
}
Input.GetKey(KeyCode.UpArrow) -> Input.GetKey(KeyCode.W)
예시
- 발사 <=> [마우스 왼쪽 버튼]
- 점프 <=> [스페이스바]
- 발사 <=> [마우스 오른쪽 버튼]
- 점프 <=> [엔터]
if (마우스 왼쪽 버튼을 누름)
{
// 총 발사
}
if ("발사"에 대응되는 버튼을 누름)
{
// 총 발사
}
하지만, 위 방식처럼 '발사'라는 입력 이름에 대응되는 버튼을 감지하게 하면 나중에 조작 키를 바꿀 수 있다.
중요한 점은 구체적으로 어떤 버튼을 감지할 것인지 명시하지 않는다는 것이다.
정리하면 다음과 같은 식으로 연결된 구조다.
코드 (실제 발사 기능) <=> 입력 이름 ("발사") <=> 입력 장치 (마우스 왼쪽 버튼)
코드 (실제 발사 기능) <=> 입력 이름 ("발사") <=> 입력 장치 (마우스 오른쪽 버튼)
유니티에서 사용하는 축이 바로 위에서 설명한 입력 이름이다. GetAxis( ) 메서드에서 사용한 Horizontal과 Vertical도 축이다.
축은 축에 대응하는 버튼을 가진다. 따라서 축을 사용하면 사용할 입력키를 직접 명시하지 않아도 된다. 축은 유니티 입력 매니저에서 관리한다.
Horizontal 축 설정
Horizontal에 대응하는 입력 버튼들이 미리 설정된 것을 확인할 수 있다.
음의 방향 버튼(Negative Button) : left(왼쪽 방향키)
양의 방향 버튼(Positive Button) : right(오른쪽 방향키)
음의 방향 보조 버튼(Alt Negative Button) : a
음의 방향 보조 버튼(Alt Positive Button) : d
음의 방향 버튼(Negative Button) : down(아래쪽 방향키)
양의 방향 버튼(Positive Button) : up(위쪽 방향키)
음의 방향 보조 버튼(Alt Negative Button) : s
음의 방향 보조 버튼(Alt Positive Button) : w
- 입력 매니저에서 Horizontal 축을 찾음
- Horizontal 축에 대응되는 버튼(← , a, →, d)들로 현재 입력을 검사
- 감지된 입력값 반환
기존 Horizontal과 Vertical 축의 설정을 변경하거나 Axes에 사용자만의 새로운 축을 추가하여 자신만의 입력 설정을 만들 수 있다.
다만 유니티의 기본 입력축들만으로 닷지를 완성하는 데 충분하기 때문에 닷지 프로젝트에서는 입력 매니저를 수정하지 않을 것이다.
두 번째 Horizontal 축과 Vertical 축은 엑스박스(Xbox)와 같은 콘솔 게임기 게임 패드의 조이스틱(아날로그 스틱)에 대응된다.
즉, 별다른 처리를 추가하지 않아도 Input.GetAxis("Horizontal")을 사용했을 때 키보드와 게임 패드 모두에 대응할 수 있다.
입력축을 사용하면 다양한 기기의 입력을 코드 한 줄로 쉽게 대응할 수 있다.
입력축은 아날로그 스틱에도 대응된다는 사실에서 입력값을 true나 false가 아닌 숫자로 변환하는 이유를 알 수 있다.
키보드의 키는 눌렀을 때 true, 누르지 않았을 때 false로 단순하게 구분할 수 있다. 하지만 게임 패드의 아날로그 스틱은 '살짝'미는 것이 가능하다.
Input.GetAxis("Horizontal")은 키보드뿐만 아니라 게임 패드 스틱의 수평 방향에도 대응한다.
게임 패드의 스틱을 다음 방향으로 '완전히' 밀면 다음과 같이 입력값이 감지된다.
스틱을 왼쪽으로 완전히 밀기 : -1.0
스틱을 가만히 내버려 두기 : 0
스틱을 오른쪽으로 완전히 밀기 : +1.0
스틱은 '살짝' 미는 것도 가능하다. 만약 스틱을 왼쪽으로 '살짝' 밀면 -1.0과 0 사이의 값(예를 들면 -0.5)이 나온다.
입력을 숫자로 받으면 스틱을 '얼마나' 밀었는지까지 감지할 수 있다. 따라서 스틱을 '살짝' 또는 '강하게' 미는 것까지 구별할 수 있다.
다음 강의에서 계속~