diff --git a/Assets/ModuleCore/ModuleExecute/ModuleExecute.cs b/Assets/ModuleCore/ModuleExecute/ModuleExecute.cs index a3466b8..3aca905 100644 --- a/Assets/ModuleCore/ModuleExecute/ModuleExecute.cs +++ b/Assets/ModuleCore/ModuleExecute/ModuleExecute.cs @@ -5,7 +5,7 @@ using UnityEngine; /// /// 执行模块 /// -public abstract class ModuleExecute { +public interface ModuleExecute { /// 执行 - public abstract void Compute(Data data); + public void Compute(Data data); } diff --git a/Assets/ModuleCore/ModuleSingle/SingleTest.cs b/Assets/ModuleCore/ModuleSingle/SingleTest.cs deleted file mode 100644 index 7d19cf2..0000000 --- a/Assets/ModuleCore/ModuleSingle/SingleTest.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public class SingleTest : ModuleSingle { - // Start is called before the first frame update - void Start() { - I.Open("ss"); - } - - // Update is called once per frame - void Update() { - - } -} diff --git a/Assets/ModuleCore/ModuleSingle/SingleTest.cs.meta b/Assets/ModuleCore/ModuleSingle/SingleTest.cs.meta deleted file mode 100644 index 22ed2ff..0000000 --- a/Assets/ModuleCore/ModuleSingle/SingleTest.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7cd3fb8ca73868a46bf1ff920e0cdc13 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/ModuleCore/ModuleVisual/ModuleVisual.cs b/Assets/ModuleCore/ModuleVisual/ModuleVisual.cs index 99a9373..47d9b0f 100644 --- a/Assets/ModuleCore/ModuleVisual/ModuleVisual.cs +++ b/Assets/ModuleCore/ModuleVisual/ModuleVisual.cs @@ -5,15 +5,16 @@ using UnityEngine; /// /// 生成可视化内容模块 /// -public abstract class ModuleVisual : MonoBehaviour { - /// 必须要初始化 - protected abstract void Awake(); - +public interface ModuleVisual { /// 更新可视化内容 - public abstract void UpdateVisual(Data data); + public void UpdateVisual(Data data); /// 释放可视化内容 - public abstract void ReleaseVisual(Data data); - + public void ReleaseVisual(Data data); +} +/// +/// 生成可视化内容模块工具 +/// +public static class VisualTool { /// 创建可视化内容 public static void Create(ref T value, Transform original, Transform parent) { if (value != null) { return; } @@ -22,8 +23,8 @@ public abstract class ModuleVisual : MonoBehaviour { } /// 创建Transform public static Transform CreateTransform(Transform original, Transform parent) { - Transform temp = Instantiate(original, parent); + Transform temp = Transform.Instantiate(original, parent); temp.gameObject.SetActive(true); return temp; } -} +} \ No newline at end of file diff --git a/Assets/ModuleCoreUI/ModuleUIItem/ModuleUIItem.cs b/Assets/ModuleCoreUI/ModuleUIItem/ModuleUIItem.cs index bf468d1..5b7650f 100644 --- a/Assets/ModuleCoreUI/ModuleUIItem/ModuleUIItem.cs +++ b/Assets/ModuleCoreUI/ModuleUIItem/ModuleUIItem.cs @@ -8,10 +8,6 @@ using UnityEngine.UIElements; /// UI项 /// public abstract class ModuleUIItem { - /// 选择事件 - public static event Action OnSelect; - /// 触发事件 - public static void Select(Data data) => OnSelect?.Invoke(data); /// 绑定的数据 public readonly Data value; /// 绑定的元素 @@ -22,13 +18,18 @@ public abstract class ModuleUIItem { this.element = element; OnSelect += UIItem_OnSelect; } - /// 触发选择事件 - public virtual void Select() => OnSelect?.Invoke(value); /// 侦听选择事件 public virtual void UIItem_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() { } /// 选中状态 diff --git a/Assets/ModuleCoreUI/ModuleUIPage/ModuleUIPage.cs b/Assets/ModuleCoreUI/ModuleUIPage/ModuleUIPage.cs index 33e0333..62c3ef8 100644 --- a/Assets/ModuleCoreUI/ModuleUIPage/ModuleUIPage.cs +++ b/Assets/ModuleCoreUI/ModuleUIPage/ModuleUIPage.cs @@ -6,12 +6,11 @@ using UnityEngine.UIElements; /// /// UI页面 /// -public abstract class ModuleUIPage : MonoBehaviour { +public abstract class ModuleUIPage : ModuleSingle { + /// 文档 public UIDocument document; - /// 根目录文档 + /// 根目录 public VisualElement root => document.rootVisualElement; - /// 必须初始化 - protected abstract void Awake(); /// 添加UI元素 public void Add(VisualElement child) => root.Add(child); /// 查询UI元素 diff --git a/Assets/ModuleCoreUI/ModuleUIPanel/ModuleUIPanel.cs b/Assets/ModuleCoreUI/ModuleUIPanel/ModuleUIPanel.cs index 2b4e39f..dd4be82 100644 --- a/Assets/ModuleCoreUI/ModuleUIPanel/ModuleUIPanel.cs +++ b/Assets/ModuleCoreUI/ModuleUIPanel/ModuleUIPanel.cs @@ -9,41 +9,7 @@ using UnityEngine.UIElements; /// public abstract class ModuleUIPanel : MonoBehaviour { /// 绑定的页面 - public ModuleUIPage ModuleUIPage; - /// 可选初始化 - protected virtual void Awake() { } - + public ModuleUIPage UIPage; + /// 绑定的根元素 public abstract VisualElement Element { get; } -} -/// -/// UI项 -/// -public abstract class UIItem { - /// 选择事件 - public static event Action OnSelect; - /// 触发事件 - public static void Select(Data data) => OnSelect?.Invoke(data); - /// 绑定的数据 - public readonly Data value; - /// 绑定的元素 - public readonly VisualElement element; - /// 基础实例 - public UIItem(Data value, VisualElement element) { - this.value = value; - this.element = element; - OnSelect += UIItem_OnSelect; - } - /// 触发选择事件 - public virtual void Select() => OnSelect?.Invoke(value); - /// 侦听选择事件 - public virtual void UIItem_OnSelect(Data obj) { - if (value.Equals(obj)) { SelectState(); } - else { DefaultState(); } - } - /// 默认状态 - public virtual void DefaultState() { } - /// 选中状态 - public virtual void SelectState() { } - /// 释放 - public virtual void Release() => OnSelect -= UIItem_OnSelect; -} +} \ No newline at end of file diff --git a/Assets/ModuleCoreUI/ModuleUIWindow/ModuleUIWindow.cs b/Assets/ModuleCoreUI/ModuleUIWindow/ModuleUIWindow.cs index bd6b6fa..35693aa 100644 --- a/Assets/ModuleCoreUI/ModuleUIWindow/ModuleUIWindow.cs +++ b/Assets/ModuleCoreUI/ModuleUIWindow/ModuleUIWindow.cs @@ -6,18 +6,9 @@ using UnityEngine.UIElements; /// /// UI窗口 /// -/// 窗口需要的数据类型 -public abstract class ModuleUIWindow : MonoBehaviour { +public abstract class ModuleUIWindow : ModuleSingle { /// 绑定的页面 - public ModuleUIPage ModuleUIPage; - /// 必须初始化 - public abstract void Awake(); - + public ModuleUIPage UIPage; /// 绑定的根元素 public abstract VisualElement Element { get; } - - /// 打开窗口,并且传进参数 - public abstract void Open(Data data); - /// 关闭窗口 - public abstract void Close(); } diff --git a/Assets/ModuleCore/ModuleSingle.meta b/Assets/ModuleTools/ModuleTool.meta similarity index 77% rename from Assets/ModuleCore/ModuleSingle.meta rename to Assets/ModuleTools/ModuleTool.meta index cf4183e..dfe845d 100644 --- a/Assets/ModuleCore/ModuleSingle.meta +++ b/Assets/ModuleTools/ModuleTool.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b6ef7cc76b1474a498a5995587aeac6f +guid: de13e4c89e97faf45b5d383070fd8e5e folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/ModuleTools/Module.cs b/Assets/ModuleTools/ModuleTool/Module.cs similarity index 100% rename from Assets/ModuleTools/Module.cs rename to Assets/ModuleTools/ModuleTool/Module.cs diff --git a/Assets/ModuleTools/Module.cs.meta b/Assets/ModuleTools/ModuleTool/Module.cs.meta similarity index 100% rename from Assets/ModuleTools/Module.cs.meta rename to Assets/ModuleTools/ModuleTool/Module.cs.meta diff --git a/Assets/ModuleCore/ModuleSingle/ModuleSingle.cs b/Assets/ModuleTools/ModuleTool/ModuleSingle.cs similarity index 59% rename from Assets/ModuleCore/ModuleSingle/ModuleSingle.cs rename to Assets/ModuleTools/ModuleTool/ModuleSingle.cs index 273ed3a..28d6eec 100644 --- a/Assets/ModuleCore/ModuleSingle/ModuleSingle.cs +++ b/Assets/ModuleTools/ModuleTool/ModuleSingle.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; using UnityEngine; /// -/// 单个独立模块 +/// 单例模块 /// public abstract class ModuleSingle : MonoBehaviour { /// 模块单例 @@ -16,11 +16,4 @@ public abstract class ModuleSingle : MonoBehaviour { if (instance != null) { Destroy(instance.gameObject); } instance = this; } - - /// 打开 - public virtual void Open(Data data) { throw new NotImplementedException(); } - /// 完成 - public virtual void Complete() { throw new NotImplementedException(); } - /// 关闭 - public virtual void Close() { throw new NotImplementedException(); } } diff --git a/Assets/ModuleCore/ModuleSingle/ModuleSingle.cs.meta b/Assets/ModuleTools/ModuleTool/ModuleSingle.cs.meta similarity index 100% rename from Assets/ModuleCore/ModuleSingle/ModuleSingle.cs.meta rename to Assets/ModuleTools/ModuleTool/ModuleSingle.cs.meta