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