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를 이해하고 사용하는 데 도움을 줄 것입니다. 다양한 활용 방법을 통해 사용자 인터페이스 개발에 유용한 요소가 될 것입니다.