Pv_log

키보드 입력을 감지하는 함수들 본문

Develop Study/Unity

키보드 입력을 감지하는 함수들

Priv 2019. 9. 11. 21:14

 

1) GetButtonDown("ButtonName");

 

KeyCode가 아니라, ButtonName으로 작동되므로 주의

 

ButtonName은 사용자가 미리 세팅해야 한다.

 

Edit -> Project Settings -> Input 으로 가면, 미리 설정된 ButtonName을 볼 수 있고, 사용자가 직접 설정할 수도 있다.

 

동작 방식은, 버튼을 누르는 순간 1회 True가 발생하는 방식이다.

 


 

2) GetButton("ButtonName");

 

GetButtonDown()과 유사한 GetButton() 함수도 ButtonName으로 작동된다.

 

GetButtonDown()과의 차이점은 동작 방식이다.

 

GetButton은 버튼을 누르고 있는 동안 계속해서 True가 발생하는 방식이다.

 

유니티 매뉴얼을 보면, 총기 자동 사격처럼 버튼이 눌러진 시간만큼 True를 반환하는 기능처럼, 액션 트리거 이벤트를 구현해야 하는 경우에만 사용하라고 한다.

(이유는 잘..)

 

 

Unity - 스크립팅 API: Input.GetButton

Success! Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable. 닫기

docs.unity3d.com

 


 

3) GetButtonUp("ButtonName");

 

GetButtonDown()와 반대되는 기능을 할 것처럼 생긴 GetButtonUp() 함수.

 

GetButtonDown()와 달리 GetButtonUp()은 ButtonName을 통해 식별된 버튼을 떼었던 첫 프레임에 True를 반환한다.

 

즉, 키에서 손을 떼는 순간 인식된다는 것.

 

기어스 오브 워 4, 기어스 5에 나온 '오버킬' 샷건 같은 기능 구현할 때 써먹을 수 있을 듯.

(오버킬 샷건: 트리거를 당길 때 한 번, 놓을 때 한 번 발사되는 독특한 샷건이다.)

 


 

4) GetKey("Name");

 

GetKey()는 ButtonName이 아니라 Name으로 작동되며, KeyCode를 사용할 수도 있다.

 

Name은 말 그대로 이름이다. 아래 예시 참조.

 

Ex) GetKey("W");

키보드 W 키를 입력하면 True 반환

 

Ex) GetKey(KeyCode.W);

키보드 W 키를 입력하면 True 반환

 

예시를 보면 기능은 똑같다.

 

사실상 모든 키보트 키들은 맵핑이 다 되어 있고, KeyCode를 사용하면 화살표 키나 esc 키 등등 다양한 기능 키들도 설정할 수 있다.

 

(그냥 Name 방식을 써도 거의 다 키 이름 입력해서 쓸 수 있는 듯하다. 근데 화살표 키나 F1~12 키들은 어떻게 쓰지..)

 

매뉴얼에 KeyCode와 함께 쓸 수 있는 키보드 키들이 전부 표로 정리되어 있으니 KeyCode를 쓰는 게 어쩌면 쉬울지도 모르겠다..

 


 

5)  GetKeyUp("Name");

 

GetButtonUp()과 비슷하다.

 

Name으로 지정된 키를 뗀 프레임 동안 True를 반환한다.

 

GetButtonUp()에서 ButtonName이 Name으로 바뀌었다고 생각하면 될 듯..

 

이 함수도 KeyCode 사용 가능.

 

그리고 앞에서 언급하지 않았는데, 키를 떼는 순간에 True를 반환하기 때문에 키를 누르고 있는 순간에는 True를 반환하지 않으며, 이는 GetButtonUp()도 마찬가지다.

(당연한 건가..)

 


 

참고

 

 

Unity - 스크립팅 API: Input

Input Manager에 설정된 각 축을 읽고 모바일 장치의 멀티터치/가속도계 데이터에 접근을 하는 경우에 이 클래스를 사용합니다. 다음의 기본 설정 축과 Input.GetAxis 함수를 이용해서 해당 축을 읽습니다. "Horizontal" 과 "Vertical" 은 조이스틱에 매핑되어 있고, A, W, S, D 는 각 방향키에 "Mouse X" 와 "Mouse Y" 는 마우스 델타(mouse delta)에 매핑 되어있습니다. "Fire1", "Fire

docs.unity3d.com

 

 

 

Comments