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 중 원하는 방식으로 입력받음.
이 글은 골드메탈님의 "유니티 입문 강의" 영상을 정리 및 내용 추가 한 글입니다.
'유니티' 카테고리의 다른 글
[유니티 이론] 중요한 기능!! Deltatime 정의 및 사용법 (0) | 2024.01.23 |
---|---|
[유니티 기초] 버튼 입력 방식으로 물체 이동하기 - GetButton, Transform (1) | 2024.01.23 |
[유니티 기초] 오브젝트 라이프 사이클 (0) | 2024.01.21 |
[유니티] 레벨 만들기 - Snap Increment (1) | 2024.01.09 |
[C#, 유니티] 게임 개발 - [SerializeField]와 [System.Serializable] 차이점 (0) | 2024.01.06 |