게임 개발에서 사용자 입력을 정밀하게 컨트롤하는 것은 매우 중요한 작업입니다. 게임 개발자는 유니티의 인풋 매니저를 사용하여 게임에 다양한 조작 방식을 지정하고, 특정 키 입력에 대한 액션을 매핑하고, 키보드, 마우스, 게임패드 등 다양한 소스에서 들어오는 입력을 탐지할 수 있습니다.

이 문서에서는 기본 입력 설정부터 고급 기능 사용까지 유니티 인풋 매니저에 대해 알아야 할 전반적인 내용을 살펴보겠습니다.

기본 입력 설정하기

유니티 인풋 매니저를 사용하기 위한 첫 번째 단계는 게임에서 사용할 기본 입력을 설정하는 것입니다. 이 작업을 수행하려면 유니티 에디터의 Edit > Project Settings > Input Manager로 이동해야 합니다. 인풋 매니저에서 Input Axes(입력 축) 목록을 확인할 수 있을 것입니다. Input Axis는 키보드 키 누르기, 마우스 이동, 게임패드 버튼 누르기 등 사용자 입력을 감지하는 데 사용할 수 있는 가상의 버튼입니다.

유니티 인풋 매니저

기본적으로 유니티에는 이동을 위한 Horizontal 및 Vertical, 무기 발사를 위한 Fire1과 같은 몇 가지 기본 입력 축이 기본적으로 제공됩니다. Size 값을 늘려서 새 Input Axes를 추가할 수 있으며, 목록에서 Input Axes를 선택하고 인스펙터 창에서 이를 변경하여 기존 Input Axes를 편집할 수 있습니다.

Size 값을 늘려 인풋 축을 더 추가하자

동작을 인풋에 매핑하기

Input Axes를 설정한 후에는 동작을 특정 인풋에 매핑할 수 있습니다. 이렇게 함으로써 코드에서 사용자의 입력을 감지하고 그에 따라 반응하도록 인풋 매니저를 사용할 수 있습니다.

예를 들어, Fire1 Input Axis를 키보드의 스페이스바 또는 게임패드의 A 버튼에 매핑할 수 있습니다. 이렇게 하려면 인풋 매니저의 ‘포지티브 버튼’ 필드를 원하는 입력으로 설정해야 합니다.

이후 코드에서 다음과 같이 Input.GetButton() 메서드를 사용하여 Fire1 입력이 트리거된 시점을 감지할 수 있습니다.

if (Input.GetButton("Fire1"))
{
    // Fire1 입력에 반응
}

Input Manager의 고급 기능 사용하기

인풋 매니저에는 기본 인풋 매핑 외에도 보다 복잡한 조작 체계를 만들고 다양한 소스에서 인풋을 감지하는 데 사용할 수 있도록 하는 몇 가지 고급 기능도 마련되어 있습니다.

예를 들어 Input.GetAxis() 메서드를 사용하여 조이스틱의 움직임과 같이 연속적인 값을 가진 입력을 감지할 수 있습니다. Input.GetMouseButton() 메서드를 사용하여 마우스 입력을 감지하거나 Input.GetJoystickNames() 메서드를 사용하여 연결된 조이스틱의 이름을 감지할 수도 있습니다.

인풋 매니저를 사용하여 트리거 또는 썸스틱과 같은 게임패드의 특정 입력을 감지할 수도 있습니다. 이렇게 하려면 인풋 매니저에서 새 Input Axes를 설정하고 원하는 게임패드 입력에 매핑해야 합니다.

마치는 글

유니티의 인풋 매니저는 게임에서 사용자 입력을 감지하고 이에 대응할 수 있는 강력하고 유연한 시스템입니다. 간단한 플랫포머부터 복잡한 액션 게임까지, 인풋 매니저를 사용하면 원하는 방식으로 게임 컨트롤을 구성할 수 있습니다.

이 문서에 설명된 단계를 따라 기본 입력을 설정하고, 특정 입력에 동작을 매핑하고, 인풋 매니저의 고급 기능을 사용하여 게임에 복잡한 컨트롤 방식을 적용할 수 있습니다.

더 공부할 자료 - 개발 능력 다양화를 위한 학습의 필요성

유니티 엔진의 대안으로서, 인디 개발자들에게 선풍적인 인기를 끌고 있는 엔진이 바로 고도 엔진입니다. 혹시 고도 엔진을 배워 보려고 하신다면, 다음의 온라인 강의를 체크해 보시기 바랍니다.

초보자를 위한 고도엔진 게임 개발 입문