using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UIElements; /// /// UI项 /// public abstract class ModuleUIItem : ModuleUIControl { /// 绑定的数据 public readonly Data value; /// UI项 public ModuleUIItem(Data value, VisualElement element) : base(element) { this.value = value; OnSelect += UnitUIPanelItem_OnSelect; } /// 侦听选择事件 public virtual void UnitUIPanelItem_OnSelect(Data obj) { if (value.Equals(obj)) { SelectState(); } else { DefaultState(); } } /// 选择事件 public static event Action OnSelect; /// 触发事件 public static void Select(Data data) => OnSelect?.Invoke(data); /// 触发选择事件 public virtual void Select() => OnSelect?.Invoke(value); /// 默认状态 public virtual void DefaultState() { } /// 选中状态 public virtual void SelectState() { } /// 释放 public virtual void Release() => OnSelect -= UnitUIPanelItem_OnSelect; }