Unity 사용자 매뉴얼 2022.3 (LTS) - TextField

개요

TextField는 사용자가 애플리케이션에 텍스트 데이터를 입력할 수 있도록 해주는 UI 요소입니다. 사용자가 입력할 내용을 안내하기 위해 플레이스홀더 텍스트를 설정할 수 있으며, 입력된 데이터가 특정 요건을 충족하는지 확인하기 위한 검증 함수도 추가할 수 있습니다.

TextField 생성

TextField는 UI 빌더, UXML, C#을 사용하여 생성할 수 있습니다. C#을 사용하여 TextField를 생성하는 예시는 아래와 같습니다.

TextField myElement = new TextField("Label text");

입력 텍스트 선택 커스터마이즈

입력된 텍스트의 선택 동작은 기본적으로 활성화되어 있습니다. 아래의 속성을 통해 선택 동작을 커스터마이즈할 수 있습니다.

myElement.textSelection.selectAllOnMouseUp = false;
myElement.textSelection.selectAllOnFocus = false;

선택된 텍스트의 색상을 변경하고 싶다면 USS의 커스텀 프로퍼티를 사용하여 스타일을 지정할 수 있습니다.

.unity-base-text-field__input {
    --unity-selection-color: yellow;
}

세로 스크롤바 활성화

TextField에서 여러 줄 텍스트를 활성화한 경우 세로 스크롤바를 표시할 수 있습니다. C#에서 스크롤바 가시성을 설정하는 예시는 다음과 같습니다.

textField.multiline = true;
textField.verticalScrollerVisibility = ScrollerVisibility.AlwaysVisible;

입력 텍스트의 동작 제어

이벤트를 활용하여 입력 텍스트의 동작을 제어할 수 있습니다. 아래는 Enter 및 Shift + Tab 키보드 이벤트에 대한 기본 동작을 오버라이드하는 예시입니다.

myField.RegisterCallback<KeyDownEvent>((evt) => { 
||
|---|
        // Submit logic
        evt.StopPropagation();
        evt.PreventDefault();
    }
||
|---|
        // Focus logic
        evt.StopPropagation();
        evt.PreventDefault();
    }
}, TrickleDown.TrickleDown);

C# 기본 클래스 및 네임스페이스

  • C# 클래스: TextField
  • 네임스페이스: UnityEngine.UIElements
  • 기본 클래스: TextInputBaseField_1

구성원 UXML 속성

TextField에는 다음과 같은 속성들이 있습니다.

이름 타입 설명
multiline boolean true로 설정 시 여러 줄 허용
value string 필드에서 현재 노출된 문자열

상속 UXML 속성

TextField는 다음과 같은 상속 속성을 가집니다.

이름 타입 설명
auto-correction boolean 터치 스크린 키보드 자동 수정 여부 결정
focusable boolean 요소에 포커스를 맞출 수 있는지 여부

USS 클래스

TextField와 관련된 USS 선택자는 다음과 같습니다.

C# 프로퍼티 USS 선택자 설명
ussClassName .unity-text-field 타입 요소의 USS 클래스명
labelUssClassName .unity-text-field__label 레이블의 USS 클래스명
inputUssClassName .unity-text-field__input 입력 요소의 USS 클래스명

USS 커스텀 프로퍼티

TextField 요소에서 사용할 수 있는 커스텀 프로퍼티는 다음과 같습니다.

프로퍼티 타입 설명
--unity-cursor-color 문자열 텍스트 삽입 기호의 컬러 코드
--unity-selection-color 문자열 선택한 텍스트의 컬러 코드

추가 리소스

  • 텍스트로 작업
  • UXML 요소 Label
  • UXML 요소 DoubleField
  • UXML 요소 LongField

이 문서는 Unity의 TextField를 이해하고 사용하는 데 도움을 줄 것입니다. 다양한 활용 방법을 통해 사용자 인터페이스 개발에 유용한 요소가 될 것입니다.