본문 바로가기
Unity/02.Scripting

Input Manager (키보드 입력, 마우스 클릭, 조이스틱 등)

by 레드아이™ 2020. 8. 11.

Edit-Project Settings - Input Manager카테고리내에서 확인 가능.

 

Key: 실제 키보드 상의 키, 예) W, Shift, space bar 등

Buttons: 물리적 콘트롤러의 버튼, 예) Xbox One 컨트롤러의 X 버튼 등

Virtual Axis: 매핑되어 있는 버튼이나 키. Axis는 -1~1의 값을 받는다. (중립값은 0). Mouse delta (한 frame내 마우스를 움직인 정도)는 마우스의 움직임 정도에 따라-1보다 작을 수 있으며 1보다 클 수 있다.

Input Manager에서의 키 설정

Input Manager에서 각 Axis의 설정값 설명

구분 설명
Name Axis 이름. 이 이름을 사용해서 Script에서 접근 가능
Negative/Positive Button 키보드의 키, 마우스/조이스틱의 버튼 등으로 Axis를 -, + 방향으로 미는 버튼
Alt Negative/Positive Button Axis를 -, + 방향으로 미는 대체 버튼
Gravity 버튼 입력이 사라졌을때 Axis의 중립으로 되돌아가는 속도 (Units per second)
Dead Analogue device에서 Null값이 아니기 위한 최소 Input 범위. 이 범위를 넘어야 입력이 됨.
Sensitivity Target Value로 Axis가 움직이는 속도 (Units per second). 디지털 기기만 해당
Snap 활성화 할 경우, 반대 방향 버튼을 누르는 경우 Axis가 0으로 리셋됨
Type Input Device Type. Key or Mouse Button/Mouse Movement/Joystick Axis 중 택일
Axis 연결된 Device의 Axis가 컨트롤 하는 Axis
Joy Num 해당 Axis를 컨트롤 하는 조이스틱

 

 

Negative/Position Button에 특정 키를 할당하는 방법

Key 종류 이름 규칙
문자 a, b, c...
숫자 1, 2, 3...
방향키 up, down, left, right
넘버패드 키 [1], [2], [3], [+], [equals]...
Modifier 키 right shift, right ctrl, right alt, right cmd...
특수키 backscape, tab, return, escape, space, delete, enter, insert, home, end, page up, page down
펑션키 f1, f2, f3...
마우스 버튼 mouse 0, mouse 1, mouse 2...
조이스틱 버튼 joystick button 0, joystick button 1, joystick button 2...
특정 조이스틱의 특정 버튼 joystick 1 button 0, joystick 1 button 1...
input.GetKey("a");
// a 버튼이 눌렸을때 true값 반환 (GetKeyDown: 버튼을 누르고 있는 상태, GetKeyUp: 버튼을 눌렀다 땠을 때)

input.GetKey(KeyCode.UpArrow)); 혹은 input.GetKey("up");
// 위쪽 화살표가 눌렸을때 true값 반환
키 변수 종류 확인: docs.unity3d.com/kr/2020.2/ScriptReference/KeyCode.html

float horizontalInput = Input.GetAxis ("Horizontal");
// float 타입의 horizontalInput 변수의 값은 Horizontal키의 axis값에 의해 정의

transform.Translate(new Vector3(horizontalInput, 0, verticalInput) * moveSpeed * Time.deltaTime);
// horizontalInput과 verticalInput 값을 받아서 moveSpeed 변수값과 프레임 시간 값의 곱에 의해 오브젝트를 이동시킴.
(Time.deltaTime: 현재 프레임 상에서 지난 시간)

댓글