새소식

개발/유니티3D

[UI] Key Mapping 방법 (신 버전 입력체계)

  • -

기존 체계에서 Key Mapping을 개선할 방법에 대해 이야기 한 적이 있다.
https://develop-4-art.tistory.com/50

하지만 Unity Package에 있는 InputSystem (1.0.2 version)을 통해 보다 쉽고 빠르게 고민을 해결할 수 있게 됐다.

이는 해당 패키지의 Sample Project인 Tank Package를 통해 어느정도 학습할 수 있다.
하지만 이는 패드 기반으로 할당할뿐만 아니라, Vector2D Value를 갖는 Joystick 값이나 Arrows 값을 받는 예제는 삽입되어 있지 않다.

처음에는 Tank예제에 있는대로 
Class InputActionRebindingExtensions | Input System | 1.0.2 (unity3d.com)
의 PerformInteractiveRebinding()을 사용하고, 추가적으로 RebindingOperation에 여러 동작을 할당함으로써 키보드와, 게임패드의 키맵을 할당했다.
하지만, 왜 인지 모르게 키보드의 화살표키에 대한 인식이 되지 않아 골머리를 썩게했는데.. (이건 제가 짠 코드가 문제일테지만.. 같은 현상을 겪는 분들을 위해..)
그냥 PerformInteractiveRebinding의 2번째 오버로딩 함수로 bindingIndex를 파라미터로 넘겨, 내부적으로 composite action 에 대한 처리를 할 수 있도록 하니 문제가 해결됐다..

괜히 더 편할 수 있는 기능을 내비두고 쓸대없이 코드를 늘리는 경우가 없도록 도큐먼트와 내부 로직을 꼼꼼하게 확인할 수 있도록 하자.. 

 

Input Bindings | Input System | 1.0.2

Input Bindings An InputBinding represents a connection between an Action and one or more Controls identified by a Control path. An Action can have an arbitrary number of Bindings pointed at it. Multiple Bindings can reference the same Control. Each Binding

docs.unity3d.com

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.