diff --git a/Assets/ModuleCore/ModuleUIControl.meta b/Assets/ModuleCore/ModuleUIControl.meta new file mode 100644 index 0000000..83e71cc --- /dev/null +++ b/Assets/ModuleCore/ModuleUIControl.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8b26950e50e4e4647a4d48ba0fde3f70 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ModuleCore/ModuleUIControl/ModuleUIControl.cs b/Assets/ModuleCore/ModuleUIControl/ModuleUIControl.cs new file mode 100644 index 0000000..3da2fc2 --- /dev/null +++ b/Assets/ModuleCore/ModuleUIControl/ModuleUIControl.cs @@ -0,0 +1,16 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UIElements; + +/// +/// UI控件 +/// +public class ModuleUIControl { + /// 核心模块 + protected virtual ModuleCore ModuleCore => ModuleCore.I; + /// 绑定的元素 + public readonly VisualElement element; + /// UI控件 + public ModuleUIControl(VisualElement element) => this.element = element; +} diff --git a/Assets/ModuleCore/ModuleUIControl/ModuleUIControl.cs.meta b/Assets/ModuleCore/ModuleUIControl/ModuleUIControl.cs.meta new file mode 100644 index 0000000..e3015fd --- /dev/null +++ b/Assets/ModuleCore/ModuleUIControl/ModuleUIControl.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c0c97a0c4b232fb4595b8eaafc961a9c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ModuleCore/ModuleUIItem.meta b/Assets/ModuleCore/ModuleUIItem.meta new file mode 100644 index 0000000..82f700b --- /dev/null +++ b/Assets/ModuleCore/ModuleUIItem.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b12984c5e1e0c2848a7a6b14061f8858 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ModuleCore/ModuleUIItem/ModuleUIItem.cs b/Assets/ModuleCore/ModuleUIItem/ModuleUIItem.cs new file mode 100644 index 0000000..f26dc49 --- /dev/null +++ b/Assets/ModuleCore/ModuleUIItem/ModuleUIItem.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UIElements; + +/// +/// UI项 +/// +public abstract class ModuleUIItem : ModuleUIControl { + /// 选择事件 + public static event Action OnSelect; + /// 触发事件 + public static void Select(Data data) => OnSelect?.Invoke(data); + /// 绑定的数据 + public readonly Data value; + /// UI项 + public ModuleUIItem(Data value, VisualElement element) : base(element) { + this.value = value; + OnSelect += UnitUIPanelItem_OnSelect; + } + /// 触发选择事件 + public virtual void Select() => OnSelect?.Invoke(value); + /// 侦听选择事件 + public virtual void UnitUIPanelItem_OnSelect(Data obj) { + if (value.Equals(obj)) { SelectState(); } + else { DefaultState(); } + } + /// 默认状态 + public virtual void DefaultState() { } + /// 选中状态 + public virtual void SelectState() { } + /// 释放 + public virtual void Release() => OnSelect -= UnitUIPanelItem_OnSelect; +} diff --git a/Assets/ModuleCore/ModuleUIItem/ModuleUIItem.cs.meta b/Assets/ModuleCore/ModuleUIItem/ModuleUIItem.cs.meta new file mode 100644 index 0000000..7be85e5 --- /dev/null +++ b/Assets/ModuleCore/ModuleUIItem/ModuleUIItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 58b0a0e9216e0b04eaedf110eeab367e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: