Files
Studio/Assets/legacy/Scripts/UI_HierarchyItem.cs

69 lines
2.1 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using XRLib;
using XRLib.UI;
namespace Studio
{
public class UI_HierarchyItem : UIBase
{
public Button button_selectitem;
public event Action<UI_HierarchyItem> onClick;
public event Action<UI_HierarchyItem> onDestroy;
// Start is called before the first frame update
public void Set(TreeItem Treeitem)
{
var item = Treeitem;
var toitem = Treeitem.ToItem;
item.onDestroyTreeItem += DestroyItemView;
TextMeshProUGUI text_name = Find<TextMeshProUGUI>(nameof(text_name));
text_name.SetText(toitem.name);
Toggle toggle_display = Find<Toggle>(nameof(toggle_display));
toggle_display.onValueChanged.AddListener(toitem.SetDisplayable);
Toggle toggle_interactible = Find<Toggle>(nameof(toggle_interactible));
toggle_interactible.onValueChanged.AddListener(toitem.SetInteractible);
Toggle toggle_expand = Find<Toggle>(nameof(toggle_expand));
toggle_expand.onValueChanged.AddListener(item.OnExpand);
button_selectitem = Find<Button>(nameof(button_selectitem));
button_selectitem.onClick.AddListener(OnClickItem);
toitem.IsDisplayable = !toggle_display.isOn;
toitem.IsInteractible = !toggle_interactible.isOn;
}
void OnClickItem()
{
onClick?.Invoke(this);
}
public void ActiveHighlight()
{
//var option = FindSingle<OptionManager>().hierarchyItemOption;
//button_selectitem.image.color = option.selectColor;
}
public void DeactvieHighlight()
{
//var option = FindSingle<OptionManager>().hierarchyItemOption;
//button_selectitem.image.color = option.unselectColor;
}
void DestroyItemView()
{
onDestroy?.Invoke(this);
Destroy(gameObject);
}
}
}