본문 바로가기
C#/Unity

Unity 입력 관리자 사용법

by GangDev 2024. 4. 18.

입력관리자란?

유니티의 입력 관리자는 게임 내에서 다양한 입력 장치(키보드, 마우스, 조이스틱 등)로부터 입력을 관리하고 처리하는 데 사용된다.

이를 통해 게임 플레이어가 자신의 취향에 맞게 조작 방법을 커스텀화할 수 있으며, 정의된 모든 축은 게임 런처에서 플레이어에게 보여지며, 이름, 자세한 설명, 디폴트 버튼에 대한 정보가 제공된다.

플레이어는 축에서 정의된 버튼을 변경할 수 있으므로, 스크립트를 작성할 때는 개별 버튼을 사용하기 보다는 축을 사용하는 것이 좋다.

 

입력 관리자에서는 다음과 같은 주요 기능들을 제공한다.

* 조이스틱 및 키보드 입력: 조이스틱 및 키보드 입력의 경우, 입력 값은 -1과 1 사이입니다.

이러한 축의 중립 위치는 0입니다.

키보드 버튼 같은 일부 타입의 컨트롤은 입력 강도에 민감하지 않으므로 01, 9 또는 1 이외의 값을 생성할 수 없다.

 

* 마우스 입력:

마우스 입력에 대한 마우스 델타(마지막 프레임 동안 마우스가 이동한 정도)를 처리할 수 있다.

마우스 입력 축의 값은 사용자가 마우스를 빠르게 움직일 때 1보다 크거나 -1보다 작을 수 있다.

 

* 가상 축 추가, 제거 및 복사:

입력 관리자를 통해 가상 축을 추가하거나 제거하거나 복사할 수 있다.

이를 통해 필요에 따라 입력 설정을 유연하게 조정할 수 있다.

 

* 명명 규칙:

특정 조이스틱의 특정 버튼을 참조하기 위한 명명 규칙을 제공한다.

예를 들어, "joystick 1 button 0"은 첫ㅂ 번째 조이스틱의 첫 번쨰 버튼을 의미한다.

 

* Input.GetKey 사용:

스크립팅에서 Input.GetKey 와 위에 명시된 명명 규칙을 사용하여 특정 키 또는 버튼에 대한 입력을 쿼리할 수 있다.

예를 들어, Input.GetKey("a"); 는 "a" 키에 대한 입력을 쿼리한다.

 

입력 관리자의 프로퍼티 종류 >>

 

Axes: 현재 프로젝트에 정의된 모든 입력 축을 포함한다.

Name: 게임 런처 내 또는 스크립팅을 통해 축을 참조하는 문자열이다.

Descriptive Name: 게임 런처에 표시되는 Positive Button 기능에 대한 자세한 정의이다.

Descriptive Negative Name: 게임 런처에 표시되는 Negative Button 기능에 대한 자세한 정의이다.

Negative Button: 축에 음의 값을 보내는 버튼이다.

Positive Button: 축에 양의 값을 보내는 버튼이다.

Alt Negative Button: 축에 음의 값을 보내는 보조 버튼이다.

Alt Positive Button: 축에 양의 값을 보내는 보조 버튼이다.

Gravity: 입력이 얼마나 빠르게 중심으로 되돌아가는지 설정한다.

Dead: 여기서 설정한 수치 미만의 모든 양 또는 음의 값은 0으로 등록된다.

Sensitivity: 키보드 입력의 경우, 값이 커질수록 반응 시간이 빨라진다.

Snap: 이 옵션을 활성화하는 경우, 축 값은 반대되는 입력을 받은 즉시 0으로 초기화된다.

Invert: 이 옵션을 활성화하는 경우, 양의 버튼은 축에 음의 값을 보내고 그 반대도 마찬가지다.

Type: 모든 버튼에 대해서는 Key / Mouse Button 을 사용하고, 마우스 델타와 스크롤 휠에 대해서는 Mouse Movement를 사용하며, 아날로그 조이스틱 축에 대해서는 joystick Axis를 사용한다.

Axis: 조이스틱, 마우스, 게임패드 등의 디바이스에서의 입력 축이다.

Joy Num: 어떤 조이스틱을 사용할지 지정한다.

 

유니티의 입력 관리자를 사용하여 게임 플레이에 필요한 사용자 정의 입력 매핑

입력 관리자는 게임 내에서 다양한 입력 장치로부터 입력을 관리하고 처리하는 데 사용되며, 이를 통해 게임 플레이어가 자신의 취향에 맞게 조작 방법을 커스텀화할 수 있다.

입력 관리자를 사용하면 가상 축을 추가, 제거, 복사하여 필요에 따라 입력 설정을 유연하게 조정할 수 있다.

스크립팅에서 축 이름으로 입력을 참조할 수 있도록 하는데, 이를 통해 게임 플레이어가 자신의 취향에 맞게 조작 방법을 커스텀화할 수 있다.