Unity 사용자 매뉴얼 - 키보드 이벤트

이 문서는 Unity의 UI Toolkit에서 키보드 이벤트를 이해하고 활용하는 방법에 대해 설명합니다. Unity의 키보드 이벤트를 사용하여 사용자 인터페이스(UI)와 상호작용할 수 있습니다.

키보드 이벤트란?

키보드 이벤트는 사용자가 키보드의 키를 눌렀을 때 또는 놓았을 때 발생합니다. 이러한 이벤트는 UI에서 특정 행동을 트리거하는 데 사용됩니다. Unity의 UI Toolkit에서는 다양한 클래스들이 이 이벤트를 사용하여 작동하게 됩니다.

주요 이벤트

이벤트 이름 설명 지원 들어갈 배열
KeyDownEvent 사용자가 키보드 키를 누를 때 발생 지원
KeyUpEvent 사용자가 키보드 키를 놓을 때 발생 지원

속성 설명

각 이벤트는 여러 속성을 가지고 있으며, 아래와 같은 정보를 포함합니다.

속성 설명
keyCode 눌린 물리적 키에 대한 코드
character 입력된 문자 코드
modifiers 눌리고 있는 수정 키(Shift, Ctrl, Alt 등)

사용 예제

아래 예시는 TextField에서 키를 누를 경우 콘솔에 메시지를 출력하는 방법을 보여줍니다. 이 코드는 KeyDownEvent 및 KeyUpEvent의 호출을 강조합니다.

C# 코드 예제

using UnityEngine;
using UnityEngine.UIElements;

[RequireComponent(typeof(UIDocument))]
public class KeyboardEventTest : MonoBehaviour
{
    void OnEnable()
    {
        var root = GetComponent<UIDocument>().rootVisualElement;
        root.Add(new Label("Press any key to see the keyDown properties"));
        root.Add(new TextField());
        root.Q<TextField>().Focus();
        root.RegisterCallback<KeyDownEvent>(OnKeyDown, TrickleDown.TrickleDown);
        root.RegisterCallback<KeyUpEvent>(OnKeyUp, TrickleDown.TrickleDown);
    }

    void OnKeyDown(KeyDownEvent ev)
    {
        Debug.Log("KeyDown:" + ev.keyCode);
        Debug.Log("KeyDown:" + ev.character);
        Debug.Log("KeyDown:" + ev.modifiers);
    }

    void OnKeyUp(KeyUpEvent ev)
    {
        Debug.Log("KeyUp:" + ev.keyCode);
        Debug.Log("KeyUp:" + ev.character);
        Debug.Log("KeyUp:" + ev.modifiers);
    }
}

사용 방법

  1. Unity 프로젝트에서 임의의 템플릿을 사용하여 생성한 후 SampleScene에서 GameObject > UI Toolkit > UI Document를 선택합니다.
  2. KeyboardEventTest.cs라는 이름의 C# 스크립트를 작성한 후 위 코드를 포함합니다.
  3. Hierarchy 창에서 UIDocument 게임 오브젝트를 선택하고, 인스펙터 창에서 Add Component를 통해 KeyboardEventTest.cs를 드래그하여 추가합니다.
  4. 플레이 모드를 시작하고 TextField에 키보드 입력을 해보세요. 입력한 키에 대한 정보가 콘솔에 출력됩니다.

추가 리소스

이 문서를 통해 Unity의 키보드 이벤트를 이해하고 활용하는 데 도움이 되길 바랍니다.