21 lines
2.7 KiB
XML
21 lines
2.7 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
|
|
<Style src="../UTKSampleCommon.uss" />
|
|
<Style src="UTKWindowSample.uss" />
|
|
|
|
<VisualElement class="utk-sample-container">
|
|
<Label class="utk-sample-desc" text="트리뷰 리스트를 윈도우 형태로 래핑한 컴포넌트입니다. 계층적 데이터 구조와 가시성 토글, 검색 기능을 제공합니다." />
|
|
|
|
<VisualElement class="utk-sample-section">
|
|
<Label class="utk-sample-section__title" text="UTKTreeListWindow" />
|
|
<VisualElement name="tree-list-window-container" class="utk-window-sample-container" />
|
|
</VisualElement>
|
|
|
|
<!-- Code Sample -->
|
|
<VisualElement class="utk-code-sample-container">
|
|
<utk:UTKCodeBlock title="C#" code="// 1. 윈도우 참조 획득 var treeWindow = root.Q<UTKTreeListWindow>("tree-window"); // 2. 윈도우 제목 설정 treeWindow.Title = "씬 계층 구조"; treeWindow.ShowCloseButton = true; // 3. 트리 데이터 구성 var data = new List<UTKTreeListItemData> { new UTKTreeListItemData { name = "Root", isExpanded = true, children = new List<UTKTreeListItemData> { new UTKTreeListItemData { name = "Child 1", ExternalKey = "obj_001", IsVisible = true }, new UTKTreeListItemData { name = "Child 2", children = new List<UTKTreeListItemData> { new UTKTreeListItemData { name = "Grandchild" } } } } } }; treeWindow.SetData(data); // 4. 선택 이벤트 treeWindow.OnItemSelected = (items) => { foreach (var item in items) HighlightGameObject(item.ExternalKey); }; // 5. 가시성 변경 이벤트 treeWindow.OnItemVisibilityChanged += (item, isVisible) => { FindGameObject(item.ExternalKey)?.SetActive(isVisible); }; // 6. 삭제 이벤트 treeWindow.EnabledDeleteItem = true; treeWindow.OnItemDeleted = (item) => { treeWindow.DeleteItem(item); }; // 7. 프로그래밍 방식 선택 treeWindow.SelectByItemId(itemId); treeWindow.ClearSelection();" />
|
|
<utk:UTKCodeBlock title="UXML" code="<utk:UTKTreeListWindow name="tree-window" />" />
|
|
</VisualElement>
|
|
</VisualElement>
|
|
</UXML>
|