hueam아카이브
InputSystem 본문
Unity InputSystem이란
유니티에서는 두 가지의 입력 방식을 지원합니다.
- 옛날 방식
InputManager 이라고 불리며 기본적인 유니티 에디터에 있습니다. - 신 방식
InputSystem 이라고 불리며 패키지를 깔아야만 합니다
작동 방식
InputSystem은 이런 식으로 작동 되는데
플레이어가 플레이어의 키와 행동을 바인딩해서 플레이어가 어떠한 장비로 상호작용을 했을 때 그에 맞는 액션을 실행시켜준다.
그래서 콘솔의 키나 키보드의 키를 액션에 바인딩하여 콘솔로도 실행이 가능하고 키보드로도 실행이 가능한거다.
이 뜻은 설정을 안 해뒀다면 다른 디바이스로는 사용이 불가능하다는 뜻이 되기도 한다.
사용방법
-
패키지 받기
InputSystem은 위에서도 서술했었지만 패키지를 다운 받지 않으면 사용이 불가능하다. -
InputAction 만들기
InputAction을 만들면 이러한 화면이 나온다.
여기서 ActionMap은 Action들을 가지고 있는 녀석이다. 나중에 가면 ActionMap을 껐다 키면서 조절이 가능하다.
ActionMap와 Action을 만들고 Action을 실행시킬 키를 설정해주면 된다.
여기까지가 설정이다. -
실제 사용!
사용 방법을 여러 방법이 있다고 생각한다.
일단 아는 방법만 서술하면- PlayerInput
PlayerInput 라는 컴포넌트를 이용해서 실행한다- SendMessage
해당 컴포넌트가 달린 스크립트 중 On+ Action이름(예: jump -> OnJump)
의 함수가 실행 된다
Value를 받는 경우는 매게변수로 InputValue value를 넣어준다. - BroadCast
SendMessage와 비슷하지만 SendMessage와는 달리 컴포넌트가 달린 오브젝트의 자식까지 찾는다. - Invoke Unity Event
UnityEvent형식으로 원하는 함수를 실행시키는 것이다. - Invoke C# Event
script에서 직접 구독을 해주는 방식이며 입력 받으면 구독한 함수들이 실행된다.
- SendMessage
- ScriptableObject
시켜도 되고 InputAction 만든 것을 C# Generate로 만들어서 SO에서 인스턴스를 만들어 만든 인스턴스에 ActionMap에서 CallBack들 설정해준다.
- PlayerInput
'오래남는 공부 > Unity' 카테고리의 다른 글
상태 기반 애니메이션 & 리플렉션 기반 FSM (0) | 2023.11.27 |
---|