240115

Ssoony_93·2024년 1월 16일
  1. Input Actions 에셋 생성 및 세팅하기
    Project 창에서 Create > Input Actions 를 클릭해 생성해준다.

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

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

    현재 Control Schema가 없는 상태다. Control Schema란 어떤 플랫폼에서 특정 내용들을 사용하겠다는 것을 설정. PC 플랫폼을 겨냥하여 사용할 것인지, 모바일인지 등 따로따로 플랫폼을 미리 설정할 수 있는 게 Control Schema이다. 어려우니 먼저 눈으로 보자! PC플랫폼에서 사용할 스키마를 만들어 보자.

    우선 생성한 Player Actions를 열고 Control Schema 추가!

PC 플랫폼에서 사용할 스키마는 PC라고 이름짓고, 마우스와 키보드를 추가하자. 그리고 저장!

같은 방식으로 Mobile 플랫폼에서 사용할 스키마 Mobile을 만들고, Touchscreen을 추가하고, 저장!

기존 Input System이었다면 코드라던지 수정해야할 게 많아서 골치 아프지만, New Input System에서는 이 부분만 바꿔서 빌드해주면 끝이다. 이제 내부 설정을 해보자!

  1. Action Maps, Actions, Properties 설정하기
    Action Maps란? 캐릭터나 몬스터, 아니면 다른 곳에 사용할 키를 Map의 이름으로 지정하는 걸 말한다. PC플랫폼에서 주인공 캐릭터에 사용할 키 맵을 지정하기 위해, PlayerActions란 이름으로 하나 생성했다. 이렇게 Map을 하나 생성하면, 내부적으로 설정할 수 있는 게 생긴다.

Actions는 해당 캐릭터의 어떤 액션에 사용 될 키 입력을 받을 것인지에 대한 형태를 설정한다. 주인공 캐릭터의 액션 중 이동에 관한 내용으로 생성하자.

생성 후, 하위 No Binding은 삭제하자.
보통 캐릭터는 WASD 또는 방향키를 통해 이동 입력을 받는다. 방향까지 내포되어 있기 때문에 Value로 받았다.

3D 프로젝트면 Vector3, 2D 프로젝트면 사용하는 데이터에 따라 Vector2를 사용할 수도 있습니다. 다만, 성능에 큰 영향은 주지 않아서 그냥 Vector3를 사용하는 편입니다!

Action Type은 어떤 것을 기준으로 키 입력이 됐는지 안됐는지를 정하는 옵션이다.

  • Value : 입력 들어온 값에 따라 결정 (ex. '+'값이 들어오면 오른쪽, '-'값이 들어오면 왼쪽 이런 식)
  • Button : 버튼이 눌렀는지, 안 눌렀는지에 따라 입력 여부 결정 (ex. 점프 같은 경우)

Control Type은 해당 키가 눌렸을 때, 스크립트에서 어떤 자료형 타입으로 리턴 받아 사용할 지 정하는 옵션이다. 캐릭터 이동에 WASD 또는 방향키를 사용할 것이기 때문에 키 바인딩을 4개 해야한다.



키 바인딩이 끝난 모습.

상단의 Auto-Save를 체크하고 닫아준다.

다음은 적용할 게임 오브젝트에 Player Input 컴포넌트 붙이기를 해보자!

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

0개의 댓글