Unity UXML 가이드
이 문서는 Unity의 UXML 포맷을 사용하여 사용자 인터페이스(UI)를 구축하는 방법을 소개합니다. UXML은 HTML, XAML, XML에서 영감을 받은 포맷으로, Unity 환경에서 효과적으로 사용할 수 있는 방법을 제공합니다.
UXML 소개
UXML은 UI의 구조를 정의하는 XML 기반의 언어입니다. 기본적으로 사용자가 선택할 수 있는 옵션이나 버튼 등을 포함한 UI 요소를 정의할 수 있습니다. 다음은 UXML 파일의 예시입니다:
<?xml version="1.0" encoding="utf-8"?>
<UXML ...>
<Box>
<Toggle name="boots" label="Boots" value="false" />
<Toggle name="helmet" label="Helmet" value="false" />
<Toggle name="cloak" label="Cloak of invisibility" value="false"/>
</Box>
<Box>
<Button name="cancel" text="Cancel" />
<Button name="ok" text="OK" />
</Box>
</UXML>
UXML 선언
UXML 파일 첫 번째 줄은 UXML 선언으로, 필수는 아니지만 포함할 경우 첫 번째 줄에 작성해야 합니다. UXML 선언의 version
속성은 필수이며, encoding
속성은 선택 사항입니다.
문서 루트와 네임스페이스
UXML 문서의 루트 요소는 <UXML>
이며, 네임스페이스를 정의해야 합니다. Unity에서는 두 가지 네임스페이스가 사용됩니다:
UnityEngine.UIElements
: Unity 런타임의 요소UnityEditor.UIElements
: Unity 에디터에서의 요소
간단한 방식으로 네임스페이스를 정의할 수 있으며, 예를 들어, xmlns:engine="UnityEngine.UIElements"
라는 구문을 통해 네임스페이스 접두사를 정의할 수 있습니다.
스키마 정의
UXML 파일의 스키마 정의는 해당 파일 내에서 사용할 수 있는 속성과 자식 요소를 명시합니다. UXML 파일을 생성할 때 자동으로 스키마가 정의되며, 이를 통해 파일의 유효성을 검사할 수 있습니다.
UXML 요소
UXML의 각 요소는 창에서 보이는 UI 구성 요소를 나타내며, C# 클래스와 연결됩니다. 다음은 UXML 요소의 주요 속성입니다:
속성 | 설명 |
---|---|
name | 요소에 대한 고유한 식별자 |
picking-mode | 마우스 이벤트에 대한 반응 방식을 설정 (Position / Ignore ) |
tabindex | 요소의 태빙 포지션을 정의하는 정수 |
focusable | 요소에 포커스를 둘 수 있는지를 나타내는 부울 |
class | 시각적 스타일을 위한 식별자 목록 |
tooltip | 마우스 커서가 요소 위에 있을 때 표시되는 문자열 |
view-data-key | 요소 직렬화에 사용되는 키를 정의하는 문자열 |
추가 리소스
활용 및 응용 예제
- 기본 UI 생성: UXML을 사용해 기본적인 버튼과 토글을 포함하는 사용자 인터페이스를 만듭니다.
- 커스텀 컨트롤 개발: Unity의
UnityEngine.UIElements
를 통해 커스텀 UI 요소를 정의하고 이를 UXML에 통합합니다. - 스키마 검증: 자동 생성된 UXML 파일의 구조를 확인하고, 필요 시 업데이트를 적용합니다.
- UI 스타일링: UI 요소에 CSS 스타일을 적용하여 사용자 정의 디자인을 구현합니다.
이 가이드를 통해 Unity에서 UXML을 활용하여 창의적인 사용자 인터페이스를 구축하는 데 도움이 되길 바랍니다.