Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

hueam아카이브

InputSystem 본문

오래남는 공부/Unity

InputSystem

hueam 2023. 11. 25. 00:03

유니티 공식 도큐먼트 공식문서


Unity InputSystem이란

유니티에서는 두 가지의 입력 방식을 지원합니다.

  • 옛날 방식
    InputManager 이라고 불리며 기본적인 유니티 에디터에 있습니다.
  • 신 방식
    InputSystem 이라고 불리며 패키지를 깔아야만 합니다

작동 방식

InputSystem은 이런 식으로 작동 되는데

플레이어가 플레이어의 키와 행동을 바인딩해서 플레이어가 어떠한 장비로 상호작용을 했을 때 그에 맞는 액션을 실행시켜준다.

그래서 콘솔의 키나 키보드의 키를 액션에 바인딩하여 콘솔로도 실행이 가능하고 키보드로도 실행이 가능한거다.
이 뜻은 설정을 안 해뒀다면 다른 디바이스로는 사용이 불가능하다는 뜻이 되기도 한다.

사용방법

  1. 패키지 받기
    InputSystem은 위에서도 서술했었지만 패키지를 다운 받지 않으면 사용이 불가능하다.

  2. InputAction 만들기
    InputAction을 만들면 이러한 화면이 나온다.
    Pasted image 20231125010350.png
    여기서 ActionMap은 Action들을 가지고 있는 녀석이다. 나중에 가면 ActionMap을 껐다 키면서 조절이 가능하다.
    ActionMap와 Action을 만들고 Action을 실행시킬 키를 설정해주면 된다.
    여기까지가 설정이다.

  3. 실제 사용!
    사용 방법을 여러 방법이 있다고 생각한다.
    일단 아는 방법만 서술하면

    1. PlayerInput
      PlayerInput 라는 컴포넌트를 이용해서 실행한다
      • SendMessage
        해당 컴포넌트가 달린 스크립트 중 On+ Action이름(예: jump -> OnJump)
        의 함수가 실행 된다
        Value를 받는 경우는 매게변수로 InputValue value를 넣어준다.
      • BroadCast
        SendMessage와 비슷하지만 SendMessage와는 달리 컴포넌트가 달린 오브젝트의 자식까지 찾는다.
      • Invoke Unity Event
        UnityEvent형식으로 원하는 함수를 실행시키는 것이다.
      • Invoke C# Event
        script에서 직접 구독을 해주는 방식이며 입력 받으면 구독한 함수들이 실행된다.
    2. ScriptableObject
      시켜도 되고 InputAction 만든 것을 C# Generate로 만들어서 SO에서 인스턴스를 만들어 만든 인스턴스에 ActionMap에서 CallBack들 설정해준다.

'오래남는 공부 > Unity' 카테고리의 다른 글

상태 기반 애니메이션 & 리플렉션 기반 FSM  (0) 2023.11.27