[Unity] New Input System 사용법

Flaming Bun·2025년 5월 2일

Unity

목록 보기
12/39

🔥 New Input System

유니티의 New Input System은 다양한 플랫폼 환경에서 사용자의 입력을 처리하는 시스템이다.

설정

[Package Manager]에서 Input System을 추가해 준다.

폴더를 생성하고 하위에 [Create] - [Input Actions]를 추가한다.

이름을 변경하고 생성한 Input Action을 클릭 후 [+] 버튼을 눌러서 원하는 Action을 추가할 수 있다.

Action Type은 어떤 것을 기준으로 키 입력이 됐는지 정하는 옵션이다.
Control Type은 Value로 반환할 자료형을 정하는 옵션이다.

움직임 입력 설정

Move의 입력을 [W,A,S,D]로 입력받게 설정하는 부분이다.
Path를 수정해서 입력받을 키를 설정할 수 있다.

마우스 움직임 입력 설정

마우스의 움직임을 입력 받는 방법이다.

마우스 클릭 입력 설정


설정이 끝나면 [Save Asset]을 클릭하고

입력을 처리하는 방법


먼저 [Player Input] 컴포넌트를 입력받을 오브젝트에 할당해 준다.

입력을 처리하는 방식은 4가지

  • Send Messages : 같은 오브젝트 안에 있는 컴포넌트 들에게 메시지를 전달하는 방식
  • Broadcast Message : 하위 계층의 오브젝트에도 메시지를 보낸다.
  • Invoke Unity Events : 유니티의 이벤트 방식으로 함수를 등록해서 사용가능하다.
  • Invoke C# Envets : C#의 이벤트 기능을 사용한 방식

Send Messages

메시지 방식에서의 InputValue

호출되는 함수에서 InputValue를 통해 키가 눌렸는지, 마우스의 위치가 어디인지, 움직임 등 확인할 수 있다.

UI위에서 클릭의 입력을 막는 방법

void OnFire(InputValue inputValue)
{
    // UI에 마우스가 올라가 있을 때  return
    if (EventSystem.current.IsPointerOverGameObject())
        return;

    isAttacking = inputValue.isPressed;
}

0개의 댓글