Unity-(4) Unity Input Basic

2 분 소요

1. Unity Input Basic

Input Class

  • 유니티에서 제공하는 입력과 관련된 모든 메소드가 정의되어 있는 클래스
  • PC(키보드, 마우스), Mobile(터치, 가속도 센서, 위치 정보) 그림1

GetKey~()

키보드 키 입력 여부를 확인하고 싶을 때 사용하는 함수

  • 매개변수는 KeyCode 열거형에 정의되어 있는 변수 또는 문자열(string) 사용
  • 반환되는 값은 조건에 만족할 때 true, 만족하지 않을 때 false가 반환

GetKeyDown()

  • 매개변수에 입력되는 키를 누를 때 1회 true를 반환
  • bool result = Input.GetKeyDown(KeyCode key);
  • bool result = Input.GetKeyDown(string key);

GetKey()

  • 매개변수에 입력되는 키를 누르고 있는 동안 매 프레임 true를 반환
  • bool result = Input.GetKey(KeyCode key);
  • bool result = Input.GetKey(string key);

GetKeyUp()

  • 매개변수에 입력되는 키를 눌렀다 뗄 때 1회 true를 반환
  • bool result = Input.GetKeyUp(KeyCode key);
  • bool result = Input.GetKeyUp(string key);

KeyCode 열거형

  • GetKey~() 함수의 매개변수로 사용 그림2

anyKey~, inputString

anyKeyDown

  • 키보드 또는 마우스 중 아무 키나 누를 때 1회 true를 반환
  • bool result = Input.anyKeyDown;

anyKey

  • 키보드 또는 마우스 중 아무 키나 누르고 있는 동안 매 프레임 true를 반환
  • bool result = Input.anyKey;

inputString

  • 이번 프레임에 입력된 정보(키보드 키)를 저장하고 있음
  • string key = Input.inputString

GetMouseButton~()

  • 마우스 키 입력 여부를 확인하고 싶을 때 사용하는 함수
  • 매개변수는 정수 0,1,2 (0 : 왼쪽 버튼, 1 : 오른쪽 버튼, 2 : 휠 버튼)
  • 반환되는 값은 조건에 만족할 때 true, 만족하지 않을 때 false가 반환

GetMouseButtonDown()

  • 매개변수로 입력되어 있는 마우스를 누를 때 1회 true를 반환
  • bool result = Input.GetMouseButtonDown(int button);

GetMouseButton()

  • 매개변수로 입력되어 있는 마우스를 누르고 있는 동안 매 프레임 true를 반환
  • bool result = Input.GetMouseButton(int button);

GetMouseButtonUp()

  • 매개변수로 입력되어 있는 마우스를 눌렀다 뗄 때 1회 true를 반환
  • bool result = Input.GetMouseButtonUp(int button);

mouseScrollDelta

  • 마우스 휠을 스크롤 했을 때 스크롤된 방향 정보 제공
  • 반환되는 값은 Vector2로 float x, float y의 2개 데이터가 나오지만 일반 마우스의 휠은 위/아래로만 이동이 간으하기 때문에 y데이터만 사용
  • y가 ’+’이면 전방 방향으로 휠을 밀 때 (0,1)
  • y가 ’-‘이면 사용자 방향으로 휠을 당길 때 (0,-1)
  • Vector2 scroll = Input.mouseScrollDelta;

mousePosition

  • 게임의 좌하단을 기준(0,0)으로 현재 마우스 좌표 값 반환
  • Vector3 position = Input.mousePosition;

InputManager

  • Input.GetKey~()를 이용하면 하나의 키에 대한 검사만 가능하지만 InputManager의 단축키 시스템을 이용해 2개 or 4개의 키를 한 세트로 묶어서 검사할 수 있다
  • 이러한 단축키 등록은 Project Settings View의 InputManager에서 하고, 키 사용은 Input.GetAxis~(), Input.GetButton()로 할 수 있다. 그림3

GetAxis~()

키보드 또는 마우스 키 입력 여부를 확인하고 싶을 때 사용하는 함수

  • GetKey~(), GetMouseButton~()과 차이점은 동시에 여러 키 정보를 확인 가능
  • 매개변수는 InputManager에 등록되어 있는 단축키 명을 문자열(string)로 사용
  • 반환되는 값은 긍정 키 : +, 부정 키 : -, 아무 키도 안 누르면 : 0

GetAxis()의 반환 데이터

  • 키를 누르고 있으면 0에서 1(or -1)까지 점점 증가하여 1(or -1)에 도달하고 키에서 손을 떼기 전까지 1(or -1)이 반환되며, 떼었다 다시 누르면 0부터 다시 증가

GetAxisRaw()의 반환 데이터

  • 반환되는 값은 -1,0,1의 3가지 숫자만 반환 그림4

GetButton~()

  • 키보드 또는 마우스 키 입력 여부를 확인하고 싶을 때 사용하는 함수
  • 동시에 2개의 키 정보를 확인 가능
  • 매개변수는 InputManager에 등록되어 있는 단축키명을 문자열(string)로 사용
  • 반환되는 값은 true, false
  • bool Input.GetButtonDown(string key); 단축키를 누를 때 1회 true를 반환
  • bool Input.GetButton(string key); 단축키를 누르고 있을 때 매 프레임 true를 반환
  • bool Input.GetButtonUp(string key); 단축키를 눌렀다 뗄 때 1회 true를 반환

  • GetAxis(), GetAxisRaw()는 이동과 같이 +, -의 값이 필요할 때 사용하고, GetButton()은 공격과 같이 눌렀는지 안 눌렀는지 판단할 때 사용
  • GetButton()은 앞에 배운 GetKey()와 흡사한데 매개변수로 사용하는 문자열이 InputManager에 정의된 단축키라는 점이 다름

InputField - TextMeshPro GameObject

  • 키보드를 이용해 문자열을 입력할 때 사용하는 상호작용 UI
  • 아이디/패스워드 입력, 채팅 등에 사용

그림5 그림6

TextMeshPro - InputField Component

그림7

Text Viewport

  • 입력된 문자열이 표시되어야 하는 영역을 나타내는 RectTransform

Text Component

  • 우리가 입력한 문자열을 표시하는 텍스트 UI

Text

  • 우리가 입력한 문자열 내용
  • Text Component에 동일한 내용이 입력된다 그림8 그림9

Line Type

그림10 그림11

Content Type

그림12 그림13 그림14 그림15 그림16

Input Type

그림17

Keyboard Type

그림18

Character Validation

그림19

TextMeshPro - InputField Component Event Method

그림20

카테고리:

업데이트:

댓글남기기