오늘은 플레이어 시스템을 구상해야 하기 때문에 우선 이동 시스템부터 개발할 것이다.
보통 Update에서 WASD로 입력받아 구현하기도 하지만, 코드의 깔끔함도 그렇고 이벤트로 처리해서 많은 기능이 수행될 때 정리가 잘 되도록 보이고 싶어서 Input System으로 구현한다.
∥ New Input System VS Old Input Manager 둘의 차이?
유니티에 기존에 탑재되어있던 InputManager에선, 여러 플랫폼으로 게임을 제작하기 위해 아주 많은 설정이 필요했다. 예를 들어 Jump이라는 동작을 수행한다고 치자. 그럼 inputManager에선
- 새 Jump를 만들고, 키보드 Space에 할당
- 새 Jump를 만들고, joystick의 A 키에 할당
- 새 Jump를 만들고, 기타 지원 기기의 X 키에 할당
- (위 작업을 반복...)
하는 식으로 지원하는 기기마다 키를 추가해줘야 했다. 사용자가 현재 어떤 기기로 이 게임을 플레이하는지 알아내는 것도 개발자가 직접 해야 하는 건 덤이다.

단순 인풋 매니저 기본값만 해도, 같은 이름의 키가 여러 번 중복 적용되어있는 것을 볼 수 있다.
그러나 New Input System은 그렇지 않다. 기존 인풋 매니저보다 나아진 점을 간단히만 정리해봐도 다음과 같다.
- 기본적으로 모든 플랫폼 지원, 플랫폼 변경 이벤트 지원
- 훨씬 더 개선된 UI
- 엔진 상에서 액션에 쉽게 대응
그러나 현재로서는 개발 단계이며, 알려지지 않은 버그가 존재할 수도 있다.