유니티

[유니티 기초] Input 으로 키보드, 마우스 입력 기능 넣기

맛난과자 2024. 1. 21. 20:26

 

Input: 게임 내의 입력을 관리하는 클래스

Input은 클래스이다.

 

그러므로 점을 이용하여 Input의 함수를 부를 수 있다 ex) Input.함수

 

함수를 알아보자

 

 

|  입력 방식

 

유니티의 입력 방식은 총 3가지

 

Down: 누름

 

Stay: 누른 상태

 

Up: 

 

예를 들어, 엔터 키를 눌러 들어가면 Down 적용. 

 

엔터 키를 계속 누르고 있으면 Stay 적용.

 

손을 떼 엔터 키가 나오면 Up 적용.

 

 

|  키보드 입력

anyKeyDown: 아무 키 입력을 최초로 받을 시 true 값 반환

 

anyKey: 아무 키 입력을 받을 시 true 값 반환

void Update(){
    if (Input.anyKeyDown) 
    	Debug.Log("아무 키를 눌렀습니다.");
    if (Input.anyKey) 
    	Debug.Log("아무 키를 누르는 중...");
}

 

를 실행하니.


콘솔에 아무것도 안 뜬다.....

 

다행이도 게임 창을 클릭하니 콘솔에 글이 떴다. 혹시 나와 같은 어려움을 겪었다면 게임창을 한 번 클릭해보길 바란다.


w,a,s,d를 한 번 씩 클릭해본 결과,

 

아무 키를 눌렀습니다 가 4번

 

아무 키를 누르는 중... 이 425번 실행되었다.

 

아무 키를 누르는 중...은 누르고 있는 동안 빠르게 수가 증가하였다.

 

 

GetKey: 키보드 버튼 입력을 받으면 true 값 반환하는 함수 (Stay)

 

매개변수로 KeyCode 를 사용한다

if (Input.GetKeyDown(KeyCode.Return))
    Debug.Log("아이템을 구입하였습니다.");
if (Input.GetKey(KeyCode.LeftArrow))
    Debug.Log("왼쪽으로 이동 중...");
if (Input.GetKey(KeyCode.RightArrow))
    Debug.Log("오른쪽으로 이동 완료");

 

실행 결과, 

 

엔터 키를 누르니 "아이템을 구입하였습니다." 1번 실행.

 

왼쪽 방향 키를 꾹 누르고 있으니 "왼쪽으로 이동 중..." 실행 수 증가.

 

오른쪽 방향 키를 눌렀다가 떼니 "오른쪽으로 이동 완료" 1번 실행.

 

Return == Enter 키. Enter 라고 쓰면 유니티가 인식 못한다.

방향 키는 Arrow를 사용한다. 

 

 

|  마우스 입력

GetMouseButton: 마우스를 입력 받으면 true 값 반환

 

매개변수: 숫자 0,1 (왼쪽 버튼, 오른쪽 버튼)

if (Input.GetMouseButtonDown(0))
    Debug.Log("미사일 발사!");
if (Input.GetMouseButton(0))
    Debug.Log("미사일 모으는 중...");
if (Input.GetMouseButtonUp(0))
    Debug.Log("슈퍼 미사일 발사!!!");

 

마우스 왼쪽 버튼 누를 시 "미사일 발사!" 1번 실행.

 

마우스 왼쪽 버튼 꾹 누르는 동안 "미사일 모으는 중..." 수 증가.

 

마우스 왼쪽 버튼 누르는 것을 멈출 시 "슈퍼 미사일 발사!!!" 1번 실행.


|  정리

 

Input 클래스 내에서

 

anyKey, GetKey, GetMouse 중 원하는 키를 

 

Down, (Stay), Up 중 원하는 방식으로 입력받음.


 

 

이 글은 골드메탈님의 "유니티 입문 강의" 영상을 정리 및 내용 추가 한 글입니다.