
먼저 유니티 Package Manager에서 Input System을 설치했다.
🎮 Input System

Assets 우클릭 - Create - Input Actions 클릭으로 생성하면 컨트롤러가 생긴다.

입력값을 받을 대상을 지정
지정한 대상이 실시할 액션을 추가
Move: 'Move' 액션은 2D 벡터 입력을 나타내며, 플레이어의 상, 하, 좌, 우 이동을 위한 키를 정의한다.
Look: 'Look' 액션은 마우스 위치를 사용하여 플레이어의 시선을 제어하는 데 사용된다. (카메라 컨트롤)
액션을 실행시킬 입력값을 할당
'Value'는 지속적인 값을 나타내며, 버튼 누름과 같은 단일 이벤트가 아닌 마우스 움직임이나 조이스틱과 같은 연속된 입력에 사용됨.
Control Type: 입력이 어떤 데이터 형식을 사용하는지 정의.
'Vector2'는 2차원 벡터 데이터를 사용하는 입력, 예를 들어 X축과 Y축의 마우스 움직임이나 조이스틱의 위치를 나타낸다.
Interactions: 입력이 활성화되는 방식에 대한 추가 규칙을 설정할 수 있다, 예를 들어 'Press'와 'Release'와 같은 특정 상태를 감지할 수 있음.
Processors: 입력 데이터를 처리하고 수정하는 데 사용되는 옵션이다, 예를 들어, 'Invert' 프로세서를 사용하여 입력 값을 반전시킬 수 있다.
| 기능 | Input Manager | 새로운 Input System |
|---|---|---|
| 접근 방식 | 전통적, 직접적인 메서드 호출 | 이벤트 기반, 액션 맵 사용 |
| 입력 처리 | Input.GetKey, Input.GetAxis 등으로 입력 확인 | 입력 액션과 이벤트 리스너를 통한 처리 |
| 장치 및 플랫폼 지원 | 제한적인 장치 및 플랫폼 지원 | 다양한 장치 및 플랫폼에 대한 광범위한 지원 |
| 사용자 정의 및 확장성 | 제한된 사용자 정의 옵션 | 높은 수준의 사용자 정의 및 확장 가능 |
| 설정 방법 | Unity Editor의 Input Manager를 통한 설정 | 코드 또는 전용 UI를 통한 설정 |
| 적합한 사용 사례 | 간단한 프로젝트나 프로토타입 | 복잡한 입력 요구사항을 가진 게임 개발 |
추후에는 Input System 안에서도 이벤트 & 델리게이트 방식이나
Send Message, Invoke Unity Event등 여러가지 입력 이벤트를 호출하는 방법에 대해 알아봐야 할 듯 하다.