Unity UI Toolkits 및 UXML 요소에 대한 설명
Unity에서 사용자 인터페이스(UI)를 생성하기 위해 UI Toolkit을 사용합니다. 이 문서에서는 UXML 요소인 LayerMaskField에 대해 설명하고, 이 요소의 C# 클래스와 관련된 속성들을 자세히 살펴보겠습니다.
1. LayerMaskField 요소
LayerMaskField는 UnityEditor.UIElements 네임스페이스에 포함되어 있으며, MaskField 클래스를 상속받습니다. 이 요소는 레이어 마스크를 선택하는 데 사용됩니다.
기본 속성
LayerMaskField는 다음과 같은 몇 가지 기초적인 속성을 가지고 있습니다:
속성 이름 | 타입 | 설명 |
---|---|---|
binding-path | string | 바인드될 타겟 프로퍼티의 경로입니다. |
focusable | boolean | 요소에 포커스를 맞출 수 있는 경우 true입니다. |
label | string | 필드 옆에 표시될 레이블을 나타내는 문자열입니다. |
tabindex | int | 포커스 링에서 정렬하는 데 사용되는 정수입니다. |
value | int | 필드와 연결된 값입니다. |
VisualElement 속성 상속
LayerMaskField는 VisualElement에서 다음과 같은 속성도 상속받습니다:
속성 이름 | 타입 | 설명 |
---|---|---|
content-container | string | 자식 요소가 추가되며, 일반적으로 요소 자체와 동일합니다. |
name | string | VisualElement의 이름입니다. |
picking-mode | UIElements.PickingMode | 요소를 선택할 수 있는지 결정합니다. |
style | string | 요소의 스타일 오브젝트에 대한 참조입니다. |
tooltip | string | 마우스를 요소 위에 놓았을 때 표시되는 텍스트입니다. |
2. C# 공용 속성과 관련 USS 선택자
LayerMaskField의 모든 C# 공용 프로퍼티와 관련된 USS 선택자는 아래와 같습니다:
C# 프로퍼티 | USS 선택자 | 설명 |
---|---|---|
ussClassName | .unity-layer-mask-field | 이 타입 요소의 USS 클래스명입니다. |
.label | .unity-layer-mask-field__label | 요소에 있는 레이블의 USS 클래스명입니다. |
.input | .unity-layer-mask-field__input | 요소에 있는 입력 요소의 USS 클래스명입니다. |
ussClassName | .unity-mask-field | 이 타입 요소의 USS 클래스명입니다. |
.label | .unity-mask-field__label | 요소에 있는 레이블의 USS 클래스명입니다. |
.input | .unity-mask-field__input | 요소에 있는 입력 요소의 USS 클래스명입니다. |
ussClassName | .unity-base-popup-field | 이 타입 요소의 USS 클래스명입니다. |
.text | .unity-base-popup-field__text | 요소에 있는 텍스트 요소의 USS 클래스명입니다. |
.arrow | .unity-base-popup-field__arrow | 요소에 있는 화살표 표시의 USS 클래스명입니다. |
.label | .unity-base-popup-field__label | 요소에 있는 레이블의 USS 클래스명입니다. |
.input | .unity-base-popup-field__input | 요소에 있는 입력 요소의 USS 클래스명입니다. |
ussClassName | .unity-base-field | 이 타입 요소의 USS 클래스명입니다. |
.label | .unity-base-field__label | 요소에 있는 레이블의 USS 클래스명입니다. |
.input | .unity-base-field__input | 요소에 있는 입력 요소의 USS 클래스명입니다. |
.noLabelVariant | .unity-base-field--no-label | 레이블이 없는 경우의 USS 클래스명입니다. |
.labelDraggerVariant | .unity-base-field__label--with-dragger | 연결된 드래거가 있는 경우의 USS 클래스명입니다. |
.mixedValueLabel | .unity-base-field__label--mixed-value | 혼합된 값을 표시하는 요소의 USS 클래스명입니다. |
.alignedField | .unity-base-field__aligned | 인스펙터 요소에 정렬된 요소의 USS 클래스명입니다. |
.disabled | .unity-disabled | 비활성화된 로컬 요소의 USS 클래스명입니다. |
3. 활용 및 응용 예제
다음은 Unity에서 LayerMaskField를 활용할 수 있는 몇 가지 응용 예제입니다:
- 게임 레벨 구조: 게임의 레벨 구조를 정의할 때, 특정 레이어에만 작용하는 오브젝트를 선택할 수 있습니다. 이를 위해 LayerMaskField를 사용하여 필요한 레이어를 쉽게 선택할 수 있습니다.
- 물리적 상호작용: 레이어 마스크를 이용해 어떤 오브젝트가 서로 상호작용할 수 있는지를 정의할 수 있습니다. 예를 들어, 플레이어와 적 캐릭터 간의 충돌을 관리할 수 있습니다.
- UI 설정: UI를 구성할 때, 여러 종류의 요소가 특정 레이어에서만 작동하도록 설정하고 싶을 때 LayerMaskField를 사용할 수 있습니다.
이와 같이 LayerMaskField는 Unity의 UI 구성에서 중요한 역할을 하며 다양한 설정을 가능하게 합니다. Unity의 기능을 최대한 활용하여 매력적인 사용자 경험을 제공해보세요!