ecsimsw

Input Class / Input Manager / GetKey / GetButton 본문

Input Class / Input Manager / GetKey / GetButton

JinHwan Kim 2019. 2. 22. 23:27

Input

  Input Manager에 설정된 게임 입력 장치의 데이터를 입력받아 이를 접근하기 유리하도록 한 class이다.
  이 클래스로 키보드의 버튼 값이나 터치의 유/무 또는 횟수, 조이스틱 조작 등의 데이터를 받아 게임을 조작할 수 있다.
  • Input Manager
    - 게임 조작 장치의 가상 축과 버튼을 컨트롤 이름으로 맵핑시켜 관리한다.
    &nsbp; Edit - Project Setting - Input에서 기존의 축과 버튼을 설정하고, 새로운 입력 축을 추가할 수 있다.

  • GetAxis
    - Input 클레스의 메소드로 InputManager에 맵핑된 가상 축을 읽는다.
      "Horizontal", "Vertical"은 조이스틱의 각각 수평과 수직에, "Mouse X", "Mouse Y"는 마우스에, "A","S","D","W"는 방향키에 맵핑되어 각 축에 입력된 데이터를 읽는다.
      InputManager에서 가상축에 대한 설정을 변경할 수 있다.
    "Input.GetAxis - 조이스틱과 마우스로 이동, 시선 전환" h = Input.GetAxis("Horizontal"); v = Input.GetAxis("Vertical"); r = Input.GetAxis("Mouse X"); Vector3 moveDir = (Vector3.forward * v) + (Vector3.right * h); transform.Translate(moveDir.normalized *moveSpeed*Time.deltaTime, Space.Self); transform.Rotate(Vector3.up * rotSpeed * Time.deltaTime * r);
  • GetKey
    - Input 클레스의 메소드로 KeyCode enum 파라미터에 따라 code에 해당하는 키가 누르고 있는 동안 True를 리턴한다.
      GetKeyDown은 누르기 시작한 프레임, GetKeyUp은 키를 뗀 프레임 동안 True를 리턴한다.
    if(Input.GetKeyDown(KeyCode.Space)) { Debug.Log("Space"); }
  • GetButton
    - Input 클레스의 메소드로 InputManager에 맵핑된 가상 버튼에 해당하는 키가 누르고 있는 동안 True를 리턴한다.
      GetButtonDown은 버튼을 누르기 시작한 프레임, GetButtonUp은 버튼을 뗀 프레임 동안 True를 리턴한다.
    if (Input.GetButtonDown("Jump")) { Debug.Log("Space"); }
      역시 가상축과 마찬가지로 InputManager에서 버튼에 대한 설정을 변경할 수 있다. 위 예시는 기본 설정인 Jump -> KeyCode.Space 에 맵핑되어 있는 상황으로 스페이스 키를 누름으로 "Space"가 출력된다.
- 위는 Input 클래스와 Input Manager의 역할, 자주 사용되는 두 메소드를 정리한 것으로 더 자세한 정보는 Docs를 참고한다. Docs-Input

'Etc > Unity' 카테고리의 다른 글

Transition  (0) 2019.02.24
Mecanim  (0) 2019.02.23
Dedicated server / Host  (0) 2019.02.21
Audio Listener / Audio source / Audio Clip  (0) 2019.02.10
Scale Factor / Uniform Scale/ Collider capability  (0) 2019.02.08
Comments