본문 바로가기
게임 개발/유니티

Input. 메서드 정리(GetAxis, GetButton, GetKey, GetMouseButton)

by FlowTree 2020. 2. 19.
반응형

https://docs.unity3d.com/kr/530/ScriptReference/Input.html

//유니티 API 사이트에서 유니티 버전에 따라서 설명글이 다름을 알았다.

 

Unity - 스크립팅 API: Input

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

docs.unity3d.com

 

 

저번에 공격 애니메이션 구현할 때 고생한 경험과 나중에 쉽게 찾아 보기 위해서(검색을 해도 생각보다 정보들이 파편화되어 있어서 찾기 애매하다. 유니티 API 사이트도 버전이 다르면 설명이 다른 경우가 있음) 유니티의 Input 정보를 정리했다.

 

▲ Input 메서드 표

//항상 대소문자 구분 확실하게 해야한다!!

//Input 메서드는 매 프레임마다 재설정되므로 Update() 메서드 내에서 이 메서드를 호출해야합니다.

Input.GetAxis

키보드와 조이스틱 입력값에 대해서 -1에서 1까지의 값을 가진다.

 

수평(좌우) 입력

Input.GetAxis("Vertical")

Input.GetAxis("Mouse X")

 

수직(상하) 입력

Input.GetAxis("Horizontal")

Input.GetAxis("Mouse Y")

 

Input.GetButton("ButtonName")

"ButtonName"에 의해 식별된 가상 버튼을 누르고 있는 동안 true를 반환합니다.

Auto Fire(FPS의 연속 사격)처럼 버튼이 눌러진 시간만큼 true를 반환합니다.

무기를 쏘는 것과 같은 액션 트리거 이벤트를 구현하는 경우에만 사용해야합니다.

연속적인 움직임을 제어하기위한 입력은 GetAxis를 사용하십시오.

 

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

유니티 > Edit > Project Setting > Input에서 미리 설정된 ButtonName을 볼 수 있고, 사용자가 직접 설정도 가능하다.

 

예) Input.GetButton("Fire1"), 유니티에서 기본적으로 Fire1은 마우스 왼쪽 버튼

 

   //"ButtonName"을 변수로 선언해서 사용가능

   //입력키를 변수로 선언하고

    public string moveAxisName = "Vertical"; 
    public string rotateAxisName = "Horizontal"; 
    public string basicAttackButtonName = "Fire1";

 

   //프로퍼티

    public float move { get; private set; } 
    public float rotate { get; private set; } 
    public bool basicAttack { get; private set; }

 

   private void Update()

   {

     //이런식으로 연결할 수 있음

      move = Input.GetAxis(moveAxisName); 
      rotate = Input.GetAxis(rotateAxisName); 
      basicAttack = Input.GetButtonDown(basicAttackButtonName);

    }

 

Input.GetButtonDown("ButtonName")

유저가 "ButtonName"으로 식별된 가상 버튼을 누르는 프레임 동안 true를 반환합니다.( = 버튼을 누르는 순간 1회 true 반환)

유저가 키를 떼었다가 다시 누를 때까지 true를 반환하지 않습니다.

뭔가 움직이는 동작을 할 경우 GetAxis를 사용하십시오.

 

Input.GetButtonDown("ButtonName");

 

Input.GetButtonUP("ButtonName")

유저가 "ButtonName"으로 식별된 가상 버튼을 뗄 때 첫 번째 프레임에서 true를 반환합니다.

유저가 버튼을 눌렀다가 다시 뗄 때까지 true를 반환하지 않습니다.

뭔가 움직이는 동작을 할 경우 GetAxis를 사용하십시오.

 

Input.GetButtonUP("ButtonName");

 

Input.GetKey("Name")

유저가 "Name"에 의해 식별된 키를 누르고 있는 동안 true를 반환합니다.( = GetButton)

또는 KeyCode를 통해 사용가능하다.

 

Input.GetKey("up");  = Input.GetKey(KeyCode.UpArrow);

Input.GetKey("W"); = Input.GetKey(KeyCode.W);

 

//유니티의 KeyCode 링크 https://docs.unity3d.com/kr/530/ScriptReference/KeyCode.html

 

Unity - 스크립팅 API: KeyCode

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

Input.GetKeyDown("Name")

유저가 "Name"에 의해 식별된 키를 누르는 프레임 동안 true를 반환합니다.( = 버튼을 누르는 순간 1회 true 반환, GetButtonDown)

 

Input.GetKeyDown("space");  = Input.GetKeyDown(KeyCode.Space);

 

Input.GetKeyUp("Name")

유저가 "Name"으로 식별된 가상 버튼을 뗄 때 첫 번째 프레임에서 true를 반환합니다.( = GetButtonUp)

 

Input.GetKeyUp("space"); = Input.GetKeyUp(Space);

 

Input.GetMouseButton(int button)

유저가 마우스 버튼을 누르고 있는 동안 true를 반환합니다.( = GetButton)

 

Input.GetMouseButton(0) = 마우스 왼쪽 버튼

Input.GetMouseButton(1) = 마우스 오른쪽 버튼

Input.GetMouseButton(2) = 마우스 중앙(휠) 버튼

 

Input.GetMouseButtonDown(int button)

유저가 마우스 버튼을 누른 프레임 동안 true를 반환합니다.( = 버튼을 누르는 순간 1회 true 반환, GetButtonDown)

 

Input.GetMouseButtonDown(0) = 마우스 왼쪽 버튼

Input.GetMouseButtonDown(1) = 마우스 오른쪽 버튼

Input.GetMouseButtonDown(2) = 마우스 중앙(휠) 버튼

 

Input.GetMouseButtonUp(int button)

유저가 마우스 버튼을 뗄 때 첫 번째 프레임에서 true를 반환합니다.( = GetButtonUp)

 

Input.GetMouseButtonUp(0) = 마우스 왼쪽 버튼

Input.GetMouseButtonUp(1) = 마우스 오른쪽 버튼

Input.GetMouseButtonUp(2) = 마우스 중앙(휠) 버튼

 

반응형

'게임 개발 > 유니티' 카테고리의 다른 글

Coroutine()  (0) 2020.03.22
Instantiate(), Destroy()  (0) 2020.02.19
Collider, OnTrigger, OnCollision  (0) 2020.02.19
유니티 이벤트 함수 실행 순서  (0) 2020.02.19
참조 타입 변수, GetComponent<>();  (0) 2020.02.19

댓글