유니티 인풋 시스템(Input System)

김승욱·2025년 8월 25일

인풋 시스템 패키지 설치

우선, 패키지 매니저를 열어서 인풋 매니저를 찾습니다.

유니티 자체 제공 패키지이기 때문에 유니티 레지스트리로 갑니다.

검색창에 Input System을 검색하고, Install을 누릅니다.

인스톨이 끝나면 이런 알림창이 뜹니다.
새로운 인풋시스템으로 프로젝트 세팅을 해야하기 때문에, 유니티를 한번 재시작 한다는 알림입니다.
Yes를 눌러줍시다.

재시작 후 In Project에서 Input System을 찾을 수 있다면, 올바르게 설치 된 것입니다.

간단한 사용법

먼저, 플레이어 역할을 할 오브젝트를 하나 만듭니다.

Add Component로 Player Input을 검색하여 추가 해 줍니다.


그럼 위와 같이 Actions가 비어있는데, Create Actions를 눌러 새로 만들어줍니다.

기본으로 만들어진 Actions에도 Move, Look, Fire를 입력받을 수 있는 설정이 기본으로 되어있습니다.

이제 이 Actions를 활용하여 아까 만들어둔 Player를 WASD로 움직여보겠습니다.


해당 컴포넌트가 붙어있는 게임오브젝트에 On~~~라는 이름의 함수들을 SendMessage한다고 쓰여있습니다.

새로운 Player 스크립트를 만들어 해당 오브젝트에 붙여줍니다.

using UnityEngine;
using UnityEngine.InputSystem;

public class Player : MonoBehaviour
{
    private Rigidbody2D rigid;
    [SerializeField] Vector2 inputVec;
    [SerializeField] float speed = 1.0f;
    
    private void Start()
    {
        rigid = GetComponent<Rigidbody2D>();
    }

    private void FixedUpdate()
    {
        Vector2 nextVec = inputVec * speed * Time.deltaTime;
        rigid.MovePosition(rigid.position + nextVec);
    }

    private void OnMove(InputValue value)
    {
        inputVec = value.Get<Vector2>();
    }
}

입력을 받아 움직이기만 하는 간단한 스크립트입니다.

플레이어 오브젝트에 RigidBody2D 컴포넌트를 추가하고 Gravity Scale을 0으로 만들어 떨어지지 않게 해줍니다.


플레이어 게임오브젝트가 올바르게 움직이는것을 볼 수 있습니다.

이 외에도 Input System은 수많은 활용이 가능하니 공식문서등을 찾아보면서 활용하는게 좋을 것 같습니다.

유니티 InputSystem 시작하기 공식문서

profile
유니티 꿈나무

0개의 댓글