1
This commit is contained in:
@@ -8,10 +8,6 @@ using UnityEngine.UIElements;
|
||||
/// UI项
|
||||
/// </summary>
|
||||
public abstract class ModuleUIItem<Data> {
|
||||
/// <summary> 选择事件 </summary>
|
||||
public static event Action<Data> OnSelect;
|
||||
/// <summary> 触发事件 </summary>
|
||||
public static void Select(Data data) => OnSelect?.Invoke(data);
|
||||
/// <summary> 绑定的数据 </summary>
|
||||
public readonly Data value;
|
||||
/// <summary> 绑定的元素 </summary>
|
||||
@@ -22,13 +18,18 @@ public abstract class ModuleUIItem<Data> {
|
||||
this.element = element;
|
||||
OnSelect += UIItem_OnSelect;
|
||||
}
|
||||
/// <summary> 触发选择事件 </summary>
|
||||
public virtual void Select() => OnSelect?.Invoke(value);
|
||||
/// <summary> 侦听选择事件 </summary>
|
||||
public virtual void UIItem_OnSelect(Data obj) {
|
||||
if (value.Equals(obj)) { SelectState(); }
|
||||
else { DefaultState(); }
|
||||
}
|
||||
|
||||
/// <summary> 选择事件 </summary>
|
||||
public static event Action<Data> OnSelect;
|
||||
/// <summary> 触发事件 </summary>
|
||||
public static void Select(Data data) => OnSelect?.Invoke(data);
|
||||
/// <summary> 触发选择事件 </summary>
|
||||
public virtual void Select() => OnSelect?.Invoke(value);
|
||||
/// <summary> 默认状态 </summary>
|
||||
public virtual void DefaultState() { }
|
||||
/// <summary> 选中状态 </summary>
|
||||
|
||||
@@ -6,12 +6,11 @@ using UnityEngine.UIElements;
|
||||
/// <summary>
|
||||
/// UI页面
|
||||
/// </summary>
|
||||
public abstract class ModuleUIPage : MonoBehaviour {
|
||||
public abstract class ModuleUIPage : ModuleSingle<ModuleUIPage> {
|
||||
/// <summary> 文档 </summary>
|
||||
public UIDocument document;
|
||||
/// <summary> 根目录文档 </summary>
|
||||
/// <summary> 根目录 </summary>
|
||||
public VisualElement root => document.rootVisualElement;
|
||||
/// <summary> 必须初始化 </summary>
|
||||
protected abstract void Awake();
|
||||
/// <summary> 添加UI元素 </summary>
|
||||
public void Add(VisualElement child) => root.Add(child);
|
||||
/// <summary> 查询UI元素 </summary>
|
||||
|
||||
@@ -9,41 +9,7 @@ using UnityEngine.UIElements;
|
||||
/// </summary>
|
||||
public abstract class ModuleUIPanel : MonoBehaviour {
|
||||
/// <summary> 绑定的页面 </summary>
|
||||
public ModuleUIPage ModuleUIPage;
|
||||
/// <summary> 可选初始化 </summary>
|
||||
protected virtual void Awake() { }
|
||||
|
||||
public ModuleUIPage UIPage;
|
||||
/// <summary> 绑定的根元素 </summary>
|
||||
public abstract VisualElement Element { get; }
|
||||
}
|
||||
/// <summary>
|
||||
/// UI项
|
||||
/// </summary>
|
||||
public abstract class UIItem<Data> {
|
||||
/// <summary> 选择事件 </summary>
|
||||
public static event Action<Data> OnSelect;
|
||||
/// <summary> 触发事件 </summary>
|
||||
public static void Select(Data data) => OnSelect?.Invoke(data);
|
||||
/// <summary> 绑定的数据 </summary>
|
||||
public readonly Data value;
|
||||
/// <summary> 绑定的元素 </summary>
|
||||
public readonly VisualElement element;
|
||||
/// <summary> 基础实例 </summary>
|
||||
public UIItem(Data value, VisualElement element) {
|
||||
this.value = value;
|
||||
this.element = element;
|
||||
OnSelect += UIItem_OnSelect;
|
||||
}
|
||||
/// <summary> 触发选择事件 </summary>
|
||||
public virtual void Select() => OnSelect?.Invoke(value);
|
||||
/// <summary> 侦听选择事件 </summary>
|
||||
public virtual void UIItem_OnSelect(Data obj) {
|
||||
if (value.Equals(obj)) { SelectState(); }
|
||||
else { DefaultState(); }
|
||||
}
|
||||
/// <summary> 默认状态 </summary>
|
||||
public virtual void DefaultState() { }
|
||||
/// <summary> 选中状态 </summary>
|
||||
public virtual void SelectState() { }
|
||||
/// <summary> 释放 </summary>
|
||||
public virtual void Release() => OnSelect -= UIItem_OnSelect;
|
||||
}
|
||||
}
|
||||
@@ -6,18 +6,9 @@ using UnityEngine.UIElements;
|
||||
/// <summary>
|
||||
/// UI窗口
|
||||
/// </summary>
|
||||
/// <typeparam name="Data">窗口需要的数据类型</typeparam>
|
||||
public abstract class ModuleUIWindow<Data> : MonoBehaviour {
|
||||
public abstract class ModuleUIWindow<T> : ModuleSingle<T> {
|
||||
/// <summary> 绑定的页面 </summary>
|
||||
public ModuleUIPage ModuleUIPage;
|
||||
/// <summary> 必须初始化 </summary>
|
||||
public abstract void Awake();
|
||||
|
||||
public ModuleUIPage UIPage;
|
||||
/// <summary> 绑定的根元素 </summary>
|
||||
public abstract VisualElement Element { get; }
|
||||
|
||||
/// <summary> 打开窗口,并且传进参数 </summary>
|
||||
public abstract void Open(Data data);
|
||||
/// <summary> 关闭窗口 </summary>
|
||||
public abstract void Close();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user