본문 바로가기
공부/Unity

Input 정리

by Piva 2021. 3. 12.

  아직 덜 정리했는데 일단 끼적인 거 백업해두기... 개인 공부용 노션에 썼던거 그대로 복붙해서 올린거라 글 엉망임.

  언제든 내용 추가 될 가능성 有.


 

1. Input.GetAxisRaw + Input.GetAxis
  [Input] : Input 시스템에 대한 Unity 의 인터페이스. Input.GetAxis() (or Input.GetAxisRaw)를 통해 해당하는 축을 사용할 수 있음. GetAxis와 GetAxisRaw는 차이가 있음.

 

- Input.GetAxis(string axisName) : 반환 값으로 -1에서 1 사이의 값을 반환함. 0.05f 단위로 순차적으로 값을 Smoothing 해서 반환하는 듯. (값이 서서히 변화한다는 뜻)

 

- Input.GetAxisRaw(string axisName) : 반환 값으로 0, -1, 1 값을 반환함. Input.GetAxis()와 달리 중간 단계 없음. 바로 저 정수값 중 하나를 반환함.

 

  사용자가 따로 설정하지 않아도 Unity 자체적으로 키 값에 대한 디폴트 값을 가지고 있는데, 대충 자주 쓰게 되는 것들은 아래와 같음.

 

Horizontal (수평) 수평 축에 대한 입력값을 받음. 기본적으로 설정되어 있는 키는 '→, ←(좌우 방향키)'. 대체 버튼(Alt Pos/Neg Button)으로는 'A'와 'D'가 설정되어 있음. 기본적으로 오른쪽 방향에 해당하는 키를 눌렀을 시 양의 정수(1) 값을, 왼쪽 방향에 해당하는 키를 눌렀을 시 음의 정수(-1) 값을 반환함.

Vertical (수직)

수직 축에 대한 입력값을 받음. 기본적으로 설정되어 있는 키는 '↑, ↓(상하 방향키)'. 대체 버튼으로는 'W', 'S'가 설정되어 있음. 기본적으로 위 방향에 해당하는 키를 눌렀을 시 양의 정수(1) 값을, 아래 방향에 해당하는 키를 눌렀을 시 음의 정수(-1) 값을 반환함.

  말그대로 디폴트 값일 뿐이라 저 축들은 사용자가 얼마든지 변경가능. 키 또한 개발자 마음대로 커스텀할 수 있음. 쟤네 말고도 Fire, Jump 등 다양한 디폴트 값이 있고, 이름도 키 값도 얼마든지 바꿀 수 있기 때문에 자기 게임에 따라 적절히 바꿔서 쓰면 될듯.

 

//Example
float horizontalMove, verticalMove;

horizontalMove = Input.GetAxis("Horizontal");

verticalMove = Input.GetAxisRaw("Vertical");

  이 축 값에 대해서도 GetKey 때와 같이 특정 키를 누르고 있는 상태, 눌렀다 뗀 상태를 함수를 통해서 알 수 있음. 간단하게 GetButtonDown, GetButtonUp 등으로 사용하면 됨.

 

 

 

2. Input.GetKey(string name)

 

  이것 또한 키 입력을 받을 수 있는 함수. 위의 GetAxis나 GetButton과 비슷하게 키의 이름을 입력으로 받는다. 이 때 입력으로 받는 키들은 위와 마찬가지로 InputManager에 사전에 정의된 디폴트 값들 또한 쓰일 수 있음. 다만 Unity 공식 문서에서는 Input.GetKey 보다는 Input.GetButton 이나 Input.GetAxis를 권장하는데, 이는 최종 사용자(End-user)가 키를 설정하는 것이 가능해서라고 함.

'공부 > Unity' 카테고리의 다른 글

Raycast & LayerMask (쪼까 추가  (0) 2021.04.18
Tilemap (feat. World Building)  (0) 2021.04.09
Unity Animation  (0) 2021.03.22