240112

Ssoony_93·2024년 1월 12일

[UNITY] NewInputSystem

게임은 특정 플랫폼 하나만을 겨냥하고 개발하는 경우가 거의 없다. 스케일이 커지면서 PC말고도 모바일, 콘솔 등의 플랫폼도 지원을 해야 할텐데, 이때 기존 Unity Input System은 플랫폼 환경 서비스를 추가할 때 골머리를 앓게하는 요소라고 한다. PC에서는 키보드와 마우스, 모바일에서는 화면 터치, 콘솔에서는 조이스틱을 사용하는 등 "플랫폼마다 사용하는 입력 방식이 다르기 때문이다."

다음과 같이 코드를 짜게 되면 플랫폼 추가 확장을 할 때 게임 Input System을 수정해야 하는 번거로움이 발생한다.

if(Input.GetKey(KeyCode.UpArrow)) // PC에서 다른 플랫폼으로 변경할 때, 번거로움이 생긴다.
{
    ...
}

그래서 Unity에서는 2019버전부터 "New INput System"이라는 것을 만들었다.

New Input System

  • 다양한 플랫폼에서 빠르게 컨트롤 설정 가능
  • 하나의 코드를 통해 다양한 플랫폼의 입력 환경을 지원할 수 있는 것이 특징
  • Package Manager에서 Input System을 설치하여 적용이 가능

New Input System 사용하기

  1. Package Manager에서 Input System 설치하기
    Package Manager에서 Unity Registry로 변경 후, Input System을 검색하여 다운로드 받을 수 있다.


    이 순서로 설치하면 된다!

    체크 박스에 마우스 커서를 가져가면 나는 이미 설치 되어있다고 한다!
  • 아래사진은 참고.

Project 창에서 생성을 할 때, Input Action 항목이 있다면 제대로 설치가 된 것이다.

  1. 설치한 새로운 Input System이 Unity Editor에 적용되었는지 확인하기
    Unity Editor 상단 메뉴바 Edit > Project Setting > Player 탭 > Other Setting 클릭 > Configuration > Active Input Handling


    보통 자동으로 Active Input Handling이 Input System Package(New)로 설정되어 있다. 만약 기존 Input System을 사용하고 싶다면 Input Manager(Old), 기존과 새로운 Input System 둘다 사용하고 다면 Both를 선택해도 된다.

  2. Input Actions 에셋 생성 및 셋팅하기
    Project 창에서 Create > Input Actions 를 클릭해 생성해준다.

    Player의 캐릭터에게 적용할 것이므로 PlayerActions라고 이름을 정하자!

    어떤 키를 입력 하면, 어떤 기능을 수행하라. 등의 이런 내용들이 이 Input Actions 파일 안에 다 들어간다. 해당 파일을 더블 클릭하면 PlayerActions의 Input Actions를 설정하는 창이 뜬다.

현재 Control Schema가 없는 상태다. Control Schema란 어떤 플랫폼에서 특정 내용들을 사용하겠다는 것을 설정. PC 플랫폼을 겨냥하여 사용할 것인지, 모바일인지 등 따로따로 플랫폼을 미리 설정할 수 있는 게 Control Schema이다.

어려우니 내일 다시 정리를 시작해보자!

profile
개발자 : 팀과 소통하고 협업하여 목표한 바를 기술적으로 구현

0개의 댓글