Unity New Input System

SourStar15·2026년 3월 18일

Unity

목록 보기
3/4
post-thumbnail

개요

새롭게 나온 인풋시스템을 알아보겠습니다.

InputSystem_Action

먼저 새로운 인풋시스템을 이용하기 위해서 인풋시스템을 만들어 줘야 합니다.

이런식으로 새롭게 만들어줘도 되고 저는 기본적으로 유니티에서 제공해주는 InputSystem_Action을 사용하겠습니다.

Action Maps


액션맵에서 Player 혹은 UI 등 크게 잡아서 인풋시스템을 커스텀 해줄 수 있습니다.
Move값을 보면 오른쪽 Action Properties에 Action의 타입과 컨트롤 타입을 입력 받아 줄 수 있습니다.

  • 현재 사진의 프로젝트는 2D 플랫포머 형식이라 Vector2로 입력받게 해주었습니다.


    해당 System에 키를 지정해줄 수 있는데 Path를 보면 생각 보다 많이 키 입력을 받을 수 있습니다.

  • 게임패드

  • 조이스틱

  • 키보드 & 마우스

  • 센서

  • 터치스크린 등등..

원하는 대로 입력하여 사용 하면 됩니다.

SlowMotion기능

현재 개발 하면서 테스트 하고 있는 사진입니다. F키를 할당해서 슬로우 모션 기능을 추가할 계획입니다.

Player Input

게임내 플레이어에게 PlayerInput 컴포넌트를 추가해 주고
Actions에 전에 수정한 InputSystem_Actions를 할당해 줍니다.

Events -> Player -> Move 같이 해당 경로로 들어가면 이전에 수정한 Action Maps를 확인 할 수 있습니다.

SlowMotion


맨 마지막에 추가해주어서 드래그로 찾아주었습니다.
이후 플레이어 오브젝트를 드래그 해서 넣어주고 해당 기능인 SlowMotion기능도 할당해 주었습니다.

PlayerController.cs

 public void OnSlowMotion(InputAction.CallbackContext context)
    {
        if(context.performed)
        {
            player.slowMotion.StartSlow();
        }
        else if (context.canceled)
        {
            player.slowMotion.StopSlow();
        }
    }

Context. ~~

여기서 Context.Performed는 해당 키를 누르고 있을 경우에 작동하는 코드입니다.
canceled는 키를 누르고 땔때 작동합니다.
started는 키를 누를때 작동합니다.

  • context.started : 누를 때 작동
  • context.performed : 누르고 있을 때
  • context.canceled : 누르다 뗄때

여기서 주의할 점은 Action Maps에서 F 키를 할당해준 SlowMotion 부분의 이름을
그대로 하는게 아닌 앞에 On을 붙여서 코드를 작성해줍니다.

Move도 메서드 이름을 OnMove, Attack도 OnAttack으로 작성해 줍니다.

profile
banana92714@gmail.com 게임클라이언트 개발자 지망생

0개의 댓글