본문 바로가기
게임엔진/Unity

[Unity] 01. Input 클래스 개념 정리 (키보드, 마우스 등 입력받기)

by 미니개발자님 2023. 3. 18.
728x90
반응형

💙 Input 클래스 개념 요약
    -  Input 클래스: 사용자의 입력(키보드, 마우스, 조이스틱 등)을 감지하는 메서드 모음
    -  종류: ① Input.GetKey()
                ② Input.GetAxis()
                ③ Input.GetButton() 
                ④ Input.GetMouseButton() 

 

Input 클래스

-  사용자의 입력(키보드, 마우스, 조이스틱 등)을 감지하는 메서드의 모음

Update() 함수에서 Input 클래스를 사용하여 매 프레임마다 사용자의 입력 감지

 


1️⃣ Input.GetKey()

 1) 정의

-  특정 키보드 버튼의 입력값을 true/false로 반환하는 메서드

-  키보드 버튼(KeyCode): 키보드의 물리적인 키 (식별자) 

    ex) UpArrow (위쪽 방향키), Alpha1 (숫자 1), Colon(:) 등

 2) 주요 메서드

메서드 설명 반환
Input.GetKeyDown() 키보드를 누르는 순간 true / false
Input.GetKey() 키보드를 누르는 동안
Input.GetKeyUp() 키보드를 누르다 손을 떼는 순간

 3) 사용 예제 코드

// 스페이스키를 누르는 순간 콘솔창에 "Space key was pressed" 출력

if (Input.GetKeyDown(KeyCode.Space))
{
	print("Space key was pressed.");
}

 

2️⃣ Input.GetAxis()

 1) 정의

키보드와 조이스틱의 어떤 축에 대한 입력값을 숫자로 반환하는 메서드

Input Manager(Edit > Project Settings > Input 메뉴)에서 미리 지정한 입력값을 받아오는 것

-  기본적으로 18가지의 입력값 지정 → 사용자가 수정 가능

 2) 주요 메서드

키워드 입력값 (대응키) 출력값
Horizontal 음:  ← , A -1.0
X 0
양:  → , D +1.0
Vertical 음: ↓ , S -1.0
X 0
양: ↑ , W  +1.0
* 조이스틱은 조금 밀었을 경우, -0.5, +0.5도 가능

 3) 사용 예제 코드

// 좌우 방향키를 누르면 z축을 따라 이동

void Update()
{
    float translation = Input.GetAxis("Horizontal") * speed;
    translation *= Time.deltaTime;
    transform.Translate(0, 0, translation);
}

 

3️⃣ Input.GetButton()

 1) 정의

Input Manager에 입력된 키의 이름에 따라 호출되는 메서드

-  Input Manager 내용은 Input.GetAxis()에서 참고

 2) 주요 메서드

메서드 설명 반환
Input.GetButtonDown() 특정 버튼을 누르는 순간 true / false
Input.GetButton() 특정 버튼을 누르는 동안
Input.GetButtonUp() 특정 버튼을 누르다 손을 떼는 순간

 3) 사용 예제 코드

// 마우스 왼쪽을 누르는 순간 콘솔창에 메시지 출력

if(Input.GetButtonDown("Fire1")
{
    print("Left click was detected");
}

 

4️⃣ Input.GetMouseButton()

 1) 정의

마우스가 클릭됐을 때 호출되는 메서드

-  0 (마우스 왼쪽), 1(마우스 오른쪽), 2(마우스 휠 스크롤)를 의미

 2) 주요 메서드

메서드 설명 반환
GetMouseButtonDown() 마우스 버튼을 누르는 순간 true / false
GetMouseButton() 마우스 버튼을 누르는 동안
GetMouseButtonUp() 마우스 버튼에서 손을 떼는 순간

 3) 사용 예제 코드

// 마우스 왼쪽을 누르는 동안 메시지 출력

if(Input.GetMouseButton(0))
{
	print("Left click was detected");    
}

 


[출처 참고]  https://docs.unity3d.com/kr/530/ScriptReference/Input.html

[출처 참고]  https://docs.unity3d.com/kr/2021.3/Manual/class-InputManager.html

[출처 참고]  책 '레트로의 유니티 게임 프로그래밍 에센스'

 

 

읽어주셔서 감사합니다. 

잘못된 내용에 대한 피드백은 언제나 환영합니다.

 

 

728x90
반응형

댓글