본문 바로가기
카테고리 없음

[2D비주얼노벨] input system 활용하기

by mazayong 2024. 6. 22.

오늘은 플레이어 시스템을 구상해야 하기 때문에 우선 이동 시스템부터 개발할 것이다.

 

보통 Update에서 WASD로 입력받아 구현하기도 하지만, 코드의 깔끔함도 그렇고 이벤트로 처리해서 많은 기능이 수행될 때 정리가 잘 되도록 보이고 싶어서 Input System으로 구현한다.

 

∥ New Input System VS Old Input Manager 둘의 차이?

유니티에 기존에 탑재되어있던 InputManager에선, 여러 플랫폼으로 게임을 제작하기 위해 아주 많은 설정이 필요했다. 예를 들어 Jump이라는 동작을 수행한다고 치자. 그럼 inputManager에선

  1. 새 Jump를 만들고, 키보드 Space에 할당
  2. 새 Jump를 만들고, joystick의  A 키에 할당
  3. 새 Jump를 만들고, 기타 지원 기기의 X 키에 할당
  4. (위 작업을 반복...)

하는 식으로 지원하는 기기마다 키를 추가해줘야 했다. 사용자가 현재 어떤 기기로 이 게임을 플레이하는지 알아내는 것도 개발자가 직접 해야 하는 건 덤이다.

단순 인풋 매니저 기본값만 해도, 같은 이름의 키가 여러 번 중복 적용되어있는 것을 볼 수 있다.

 

그러나 New Input System은 그렇지 않다. 기존 인풋 매니저보다 나아진 점을 간단히만 정리해봐도 다음과 같다.

  1. 기본적으로 모든 플랫폼 지원, 플랫폼 변경 이벤트 지원
  2. 훨씬 더 개선된 UI
  3. 엔진 상에서 액션에 쉽게 대응

그러나 현재로서는 개발 단계이며, 알려지지 않은 버그가 존재할 수도 있다.