안녕하세요. 야한곰입니다.
유니티 New Input System의 기본적인 사용법을 알아보겠습니다!
현재 1.0.0 버전까지 나왔고 일단 프리뷰 기능이기에 업데이트시 변화가 있을 수는 있습니다.
먼저 Window - PackageManager 를 열어서 Advanced - Show preview packages 를 체크하시고 Input System 항목을 찾으셔서 Install하시면 됩니다.
<그림 1>
설치를 하시면 프로젝트창에서 우클릭 - Create - Input Actions 항목이 생겨있습니다. 클릭해서 생성해 주세요.
파일이 하나 생성이 되고 이름을 적고 나면
요렇게 생겨먹은 녀석으로 변합니다.
<그림 2>
요녀석을 더블클릭 하시면 다이얼로그 창이 뜨는데 이곳에서 입력에 대한 설정을 할 수 있습니다.
<그림 3>
크게 Action Map, Action, composite,binding 으로 나뉩니다.
일단 Action Maps 좌측의 +를 누르시면 새로운 Map이 생성 가능합니다.
새로운 맵을 생성하시면 이름을 설정할 수 있고 Action과 binding이 기본적으로 같이 생성 됩니다.
<그림 4>
요런 식으로요.
그럼 Map의 이름을 적으시고 New action을 클릭하고 F2키로 이름을 정해주시면 됩니다. 예로 Jump, Shoot, Move 등등...
<No Binding>은 우클릭 - Delete로 지워버리시고
New action 우측의 +를 누르시면 binding 혹은 composite를 생성할 수 있습니다.
<그림 5>
저렇게 Aixs, Vector, 머시기 들을 생성 할 수 있는데
Binding 은 Action을 Value로 설정하고 Binding의 Path를 마우스 포인트의 좌표 등을 설정하면 반환해줍니다.
1D Axis는 InputManager의 Axis와 같다고 보시면 됩니다. 설정한 값의 범위에서 N,P의 키설정에 따라 값을 반환합니다.
2D Vector는 4방향에 대한 키를 설정하고 누르는 키에 따라 벡터 값을 반환합니다.
Button With One Mo...는 동시에 두키를 누를 때 반응 합니다 예로 'Ctrl + z' 이런겁니다.
Button With Two Mo... 이거는 키 세개의 입력을 받아야 합니다.
그럼 원하는 Composite 혹은 Binding을 생성합니다.
1D Aixs를 생성한다면 compotite의 이름을 설정하고 Negative , Positive의 Path를 눌러서 원하는 키를 넣으시면 됩니다.
<그림 3>을 보시면 이름을 AxisLog로 N = 마우스의 좌클릭, P = 키보드의 우측방향키로 설정 된겁니다.
다 설정하셨다면 Save asset을 눌러 저장하시면 되고
입력받을 디바이스를 나눠서 관리하시고 싶다면 상단의 No Control Scheme를 클릭하셔서 추가하셔서 관리하시면 됩니다.
저장하고 <그림 2>를 클릭하시면 인스펙터가 다음같이 나옵니다.
<그림 6>
Generate C# Class 를 체크하시고 Apply를 누르시면 됩니다.
그럼 <그림 2>와 같은 이름의 스크립트가 생성됩니다.
이제 저 스크립트를 이용하면 됩니다.
Player라는 스크립트를 생성하고 오브젝트에 추가한 뒤 Player에 코드를 작성하시면 됩니다.
<그림 7>
여기까지 하시고 실행하여 확인해 보시면 됩니다.
직접 사용해보시면 생각보다 쉽게 이해가 되실 겁니다.
이 외에도 PlayerInput을 사용하는 방법도 영상에서 소개하니 한번씩 봐주시면 감사하겠습니다!
( 겸사겸사 좋아요와 구독도 해주시면 감사합니다! )