23.03.13. (월) - Input Manager

김도익·2023년 3월 13일
0

Unity

목록 보기
8/23

<교수님 말씀>

Input Manager은 구버전
Input System은 신버전
Input Manger가 좀 더 직관적이다.

사용자 입력을 제대로 처리해줘야한다. 우리에겐 찰나의 순간이지만, 컴퓨터한테는 매우 큰 입력이 가해지기 때문에 입력에 대한 예외처리를 제대로 해줘야한다.

마우스의 위치는 음수가 나오지 않으며, 지축은 사용하지 않는다.

개요

Unity는 다양한 타입의 입력을 제공한다.

  • 키보드 및 마우스

  • 조이스틱

  • 컨트롤러

  • 터치 스크린

  • 모바일 기기그이 여러 센서

  • VR / AR 컨트롤러

Unity에서 입력을 위한 시스템은 Input ManagerInput System 2가지가 있다. 여기서는 Input Manager를 이용한 입력 처리 방법에 대해 알아보도록 하겠다.

키보드 입력 처리

어떤 키가 눌렸는지, 떼졌는지, 계속 눌리고 있는지 판단을 내리려면 GetKeyDown(), GetKeyUp(), GetKey()를 사용하면 됩니다.

마우스 입력 처리

키보드와 비슷하게 마우스도 GetMouseButtonDown(), GetMouseButtonUp(), GetMouseButton()으로 마우스 버튼에 관한 다양한 상황을 처리할 수 있다.

mousePosition으로 커서의 위치도 알 수 있다.

가상 축

입력 처리를 할 때 실제 입력된 키에 대해서 코드를 작성하는 것은 입력에 대한 유연성이 떨어지게 된다. 따라서 일반적으로 실제 입력에 대해 대응되는 명령어로 바꿔 프로그램으로 전달하게 된다.

Input Manager에선 이것을 가상 축(Virtual Axes)이라고 부른다. 가상 축은 Edit > Project Settings에서 확인할 수 있다. 가상 축에 대한 설정은 매뉴얼을 참고하라.

가상 축으로 설정된 것은 GetAxis(), GetKey(), GetKeyDown(), GetKeyUp()으로 활용할 수 있다.

Input Manager 정리

GetKeyDown()
한 번 눌렀을 때 실행된다.

GetKey()
누르고 있으면 계속 실행 된다.

GetKeyUp()
눌렀다 뗐을 때 실행 된다.

GetMouseButtonDown()
한 번 눌렀을 때 실행된다.

GetMouseButton()
누르고 있으면 계속 실행 된다.

GetMouseButtonUp()
눌렀다 뗐을 때 실행 된다.

=> mouse는 0이면 좌측 키, 1이면 우측키다. 우리가 흔히 클릭하는 키는 0번, 좌측키다.

가상축
입력 처리를 할 때 실제 입력된 키에 대해서 코드를 작성하는 것은 입력에 대한 유연성이 떨어지게 된다.
=> 점프 키를 W로 뒀다면, ↑ 방향키로는 점프를 할 수 없는 불편함이 있다.

따라서 일반적으로 실제 입력에 대해 대응되는 명령어로 바꿔 프로그램으로 전달하게 된다. Input Manager에선 이것을 가상 축(Virtual Axes)이라고 부른다.
=> 점프를 GetAxis(“Jump”)로 두면 조이스틱, 키보드 등 어디서든 점프키로 설정 된 키를 누른다면 작동이 된다. 편리성과 유연성이 높다.

가상 축으로 설정된 것은 GetAxis(), GetKey(), GetKeyDown(), GetKeyUp()

profile
고급 개발자가 되고 싶어요!

0개의 댓글