[Unity] Input System(1)

muchan
muchan
∙∙조회 10

Unity InputSystem

유니티에는 Input을 받는 방법이 두 가지가 있다

 구 Input Manager새 Input System
접근 방식폴링 (매 프레임 체크)이벤트 기반 (콜백)
파일Project Settings에서 설정.inputactions 에셋 파일
멀티 디바이스제한적네이티브 지원
로컬 멀티플레이어구현 복잡PlayerInputManager로 간편 지원

과거에는 Input.GetKey() 같은 방식으로 매 프레임 입력을 확인하는 폴링(Polling) 방식이 주로 사용되었다.
하지만 게임이 복잡해지고 키보드, 마우스뿐 아니라 게임패드, 모바일 컨트롤러 등 다양한 입력 장치를 지원해야 하는 상황이 많아지면서 Unity는 새로운 Input System을 제공하게 되었다.

Input System 용어 정리

Input Action Asset

  • 확장자가 .inputactions인 JSON 형식의 에셋 파일
  • 액션 맵, 액션, 바인딩, 컨트롤 스키마 등 모든 입력 구성 정보를 포함
  • Unity 6에서는 Input System이 표준 입력 방식

유니티 씬에 InputSystem_Action를 Input Action Asset 이라고 한다

Input Action Map

  • 관련된 액션들을 그룹화하는 컨테이너
  • 특정 게임 상황별로 구분(예: Player, UI, Vehicle, Menu)
  • Action Map은 액션들의 집합이다.

점프라는 키가 눌렸는지 판단하는게 아니고 점프라는 액션 값을 읽어와서 점프라는 것을 인식하는 느낌

즉 특정 키 입력 자체보다 플레이어의 의도(Action)를 기준으로 입력을 처리한다.

Input Action

  • 게임 내 논리적 동작을 나타내는 추상화된 입력 (=디바이스의 물리적 입력을 1대1로 매칭하는게 아님)
  • 여러 물리적 입력 장치를 하나의 동작으로 매핑
  • 액션 타입: Value, Button, Pass Through
  • long 클릭, 더블 클릭과 같은 세부적인 기능이 있다

Binding

  • 액션과 실제 컨트롤을 연결하는 매핑 정보
  • 하나의 액션에 여러 바인딩 추가 가능 (멀티 플랫폼 지원)
  • Composite Binding으로 여러 컨트롤 조합 가능 (예: WASD -> 2D Vector)

터치 스크린, 핸드폰에 끼우는 패드도 디바이스고 액션과 연결할 수 있다

Control

  • 입력 장치의 개별 물리적 입력 요소 (버튼, 스틱, 키, 트리거 등)
  • Control Path로 식별:  /space,  /leftStick
  • 계층적 구조: 제네릭에서 특정장치로 세분화 (  에서  )
  • 현재 입력 값과 상태 정보를 실시간으로 제공

사실상 컨트롤과 액션들이 서로 연결되는 느낌

Interaction

  • 입력이 언제 트리거될지 결정하는 패턴 정의
  • 기본 제공 타입: Press, Hold, Tap, SlowTap, MultiTap 등
  • 액션의 라이프 사이클 결정: started, performed, canceled
  • 바인딩별로 다른 인터렉션 설정 가능

Control Scheme

  • 특정 입력 장치 조합을 하나의 스키마로 정의(예: Keyboard&Mouse, Gamepad)
  • 스키마별로 활성화할 바인딩 그룹 지정
  • 자동 전환: 마지막 입력, 연결된 장치, 기본 설정 기준으로 자동 선택
  • 멀티플레이어 지원: 플레이어별로 다른 스키마 할당 가능