using UnityEngine; using UVC.UI.List.Tree; using UVC.UI.Window; public class HierarchySample : MonoBehaviour { [SerializeField] private HierarchyWindow hierarchyWindow; void Start() { for (int i = 0; i < 10; i++) { TreeListItemData itemData = new TreeListItemData("Item " + i); int len = 5;// i < 5 ? 0 : 2;// Random.Range(1, 5); Debug.Log("len: " + len); for (int j = 0; j < len; j++) { itemData.AddChild(new TreeListItemData("Item " + i + "." + j)); int childLen = 3;// Random.Range(0, 3); for (int k = 0; k < childLen; k++) { itemData.Children[j].AddChild(new TreeListItemData("Item " + i + "." + j + "." + k)); for (int l = 0; l < 2; l++) { itemData.Children[j].Children[k].AddChild(new TreeListItemData("Item " + i + "." + j + "." + k + "." + l)); } } } hierarchyWindow.AddItem(itemData); } hierarchyWindow.OnItemSelected += (data) => { Debug.Log("Selected Item: " + data.Name); }; hierarchyWindow.OnItemDeselected += (data) => { Debug.Log("Deselected Item: " + data.Name); }; hierarchyWindow.OnItemVisibilityChanged += (data, isVisible) => { Debug.Log($"Item Visibility Changed: {data.Name}, IsVisible: {isVisible}"); }; } }