Unity 사용자 매뉴얼 (2022.3 LTS)
이 문서에서는 Unity에서 UI를 생성하는 방법과 관련된 API를 설명합니다. 주로 UI 툴킷과 관련된 UXML 요소에 대해 다루고 있으며, 특징적으로 ToolbarMenu
클래스의 속성과 사용 방법에 대해 설명합니다.
UI 툴킷
UI 툴킷은 Unity에서 사용자 인터페이스를 더욱 효율적으로 생성하고 관리하는 데 도움을 줍니다. 이 문서에서 다루는 UXML 요소는 다음과 같습니다:
- ToolbarMenu
- ToolbarButton
- ToolbarPopupSearchField
각 요소에 대한 설명은 아래 섹션에서 자세히 다룹니다.
UXML 요소
ToolbarMenu
ToolbarMenu
는 Unity의 주요 UI 항목 중 하나로, 메뉴를 표시하는 데 사용됩니다. 이 클래스의 주요 속성은 다음과 같습니다:
속성명 | 타입 | 설명 |
---|---|---|
binding-path | string | 바인드될 타겟 프로퍼티의 경로입니다. |
display-tooltip-when-elided | boolean | true인 경우 툴팁에 생략된 텍스트의 전체 버전이 표시됩니다. |
enable-rich-text | boolean | false인 경우 리치 텍스트 태그가 파싱되지 않습니다. |
focusable | boolean | 요소에 포커스를 맞출 수 있으면 true입니다. |
tabindex | int | 포커스 링에서 포커스를 맞출 수 있는 항목을 정렬하는 데 사용됩니다. |
text | string | 표시되는 텍스트입니다. 이 값을 변경하면 INotifyValueChanged{T}.value 가 호출됩니다. |
활용 예제
사용자가 메뉴를 쉽게 탐색할 수 있도록 하는 기본적인 예제는 다음과 같습니다:
using UnityEngine;
using UnityEngine.UIElements;
public class MenuExample : MonoBehaviour
{
void Start()
{
var menu = new ToolbarMenu();
menu.text = "옵션";
menu.Add(new ToolbarButton(() => Debug.Log("옵션 1 클릭됨")));
menu.Add(new ToolbarButton(() => Debug.Log("옵션 2 클릭됨")));
Add(menu);
}
}
VisualElement 속성
이 요소는 VisualElement
에서 다음과 같은 속성을 상속받습니다:
속성명 | 타입 | 설명 |
---|---|---|
content-container | string | 자식 요소가 추가되며 일반적으로 요소 자체와 동일합니다. |
name | string | VisualElement의 고유한 이름입니다. 공식적인 요소 선택을 위해 사용합니다. |
picking-mode | UIElements.PickingMode | 요소가 마우스 이벤트 중 선택할 수 있는지를 결정합니다. |
style | string | 스타일 오브젝트에 대한 레퍼런스입니다. |
tooltip | string | 사용자에게 정보 박스 안에 표시할 텍스트입니다. |
usage-hints | UIElements.UsageHints | VisualElement에 대한 의도된 사용 패턴을 지정하는 힌트 값입니다. |
view-data-key | string | 보기 데이터의 지속성을 위한 키입니다. |
추가 예제
UI 요소의 스타일과 툴팁을 설정하는 방법을 보여주는 예제는 다음과 같습니다:
using UnityEngine;
using UnityEngine.UIElements;
public class ButtonWithTooltip : MonoBehaviour
{
void Start()
{
var button = new ToolbarButton(() => Debug.Log("버튼 클릭됨"))
{
text = "클릭하세요",
tooltip = "이 버튼을 클릭하면 동작이 수행됩니다."
};
Add(button);
}
}
이 문서에서 설명된 내용들을 통해 Unity의 UI 툴킷을 활용하여 다양한 사용자 인터페이스를 구성할 수 있습니다. 이 API를 적절히 활용하면 더욱 효과적이고 매력적인 UI를 개발할 수 있습니다.