1
This commit is contained in:
@@ -5,7 +5,7 @@ using UnityEngine;
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 执行模块
|
/// 执行模块
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract class ModuleExecute<Data> {
|
public interface ModuleExecute<Data> {
|
||||||
/// <summary> 执行 </summary>
|
/// <summary> 执行 </summary>
|
||||||
public abstract void Compute(Data data);
|
public void Compute(Data data);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
public class SingleTest : ModuleSingle<string> {
|
|
||||||
// Start is called before the first frame update
|
|
||||||
void Start() {
|
|
||||||
I.Open("ss");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update is called once per frame
|
|
||||||
void Update() {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 7cd3fb8ca73868a46bf1ff920e0cdc13
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -5,15 +5,16 @@ using UnityEngine;
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 生成可视化内容模块
|
/// 生成可视化内容模块
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract class ModuleVisual<Data> : MonoBehaviour {
|
public interface ModuleVisual<Data> {
|
||||||
/// <summary> 必须要初始化 </summary>
|
|
||||||
protected abstract void Awake();
|
|
||||||
|
|
||||||
/// <summary> 更新可视化内容 </summary>
|
/// <summary> 更新可视化内容 </summary>
|
||||||
public abstract void UpdateVisual(Data data);
|
public void UpdateVisual(Data data);
|
||||||
/// <summary> 释放可视化内容 </summary>
|
/// <summary> 释放可视化内容 </summary>
|
||||||
public abstract void ReleaseVisual(Data data);
|
public void ReleaseVisual(Data data);
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 生成可视化内容模块工具
|
||||||
|
/// </summary>
|
||||||
|
public static class VisualTool {
|
||||||
/// <summary> 创建可视化内容 </summary>
|
/// <summary> 创建可视化内容 </summary>
|
||||||
public static void Create<T>(ref T value, Transform original, Transform parent) {
|
public static void Create<T>(ref T value, Transform original, Transform parent) {
|
||||||
if (value != null) { return; }
|
if (value != null) { return; }
|
||||||
@@ -22,7 +23,7 @@ public abstract class ModuleVisual<Data> : MonoBehaviour {
|
|||||||
}
|
}
|
||||||
/// <summary> 创建Transform </summary>
|
/// <summary> 创建Transform </summary>
|
||||||
public static Transform CreateTransform(Transform original, Transform parent) {
|
public static Transform CreateTransform(Transform original, Transform parent) {
|
||||||
Transform temp = Instantiate(original, parent);
|
Transform temp = Transform.Instantiate(original, parent);
|
||||||
temp.gameObject.SetActive(true);
|
temp.gameObject.SetActive(true);
|
||||||
return temp;
|
return temp;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,10 +8,6 @@ using UnityEngine.UIElements;
|
|||||||
/// UI项
|
/// UI项
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract class ModuleUIItem<Data> {
|
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>
|
/// <summary> 绑定的数据 </summary>
|
||||||
public readonly Data value;
|
public readonly Data value;
|
||||||
/// <summary> 绑定的元素 </summary>
|
/// <summary> 绑定的元素 </summary>
|
||||||
@@ -22,13 +18,18 @@ public abstract class ModuleUIItem<Data> {
|
|||||||
this.element = element;
|
this.element = element;
|
||||||
OnSelect += UIItem_OnSelect;
|
OnSelect += UIItem_OnSelect;
|
||||||
}
|
}
|
||||||
/// <summary> 触发选择事件 </summary>
|
|
||||||
public virtual void Select() => OnSelect?.Invoke(value);
|
|
||||||
/// <summary> 侦听选择事件 </summary>
|
/// <summary> 侦听选择事件 </summary>
|
||||||
public virtual void UIItem_OnSelect(Data obj) {
|
public virtual void UIItem_OnSelect(Data obj) {
|
||||||
if (value.Equals(obj)) { SelectState(); }
|
if (value.Equals(obj)) { SelectState(); }
|
||||||
else { DefaultState(); }
|
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>
|
/// <summary> 默认状态 </summary>
|
||||||
public virtual void DefaultState() { }
|
public virtual void DefaultState() { }
|
||||||
/// <summary> 选中状态 </summary>
|
/// <summary> 选中状态 </summary>
|
||||||
|
|||||||
@@ -6,12 +6,11 @@ using UnityEngine.UIElements;
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// UI页面
|
/// UI页面
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract class ModuleUIPage : MonoBehaviour {
|
public abstract class ModuleUIPage : ModuleSingle<ModuleUIPage> {
|
||||||
|
/// <summary> 文档 </summary>
|
||||||
public UIDocument document;
|
public UIDocument document;
|
||||||
/// <summary> 根目录文档 </summary>
|
/// <summary> 根目录 </summary>
|
||||||
public VisualElement root => document.rootVisualElement;
|
public VisualElement root => document.rootVisualElement;
|
||||||
/// <summary> 必须初始化 </summary>
|
|
||||||
protected abstract void Awake();
|
|
||||||
/// <summary> 添加UI元素 </summary>
|
/// <summary> 添加UI元素 </summary>
|
||||||
public void Add(VisualElement child) => root.Add(child);
|
public void Add(VisualElement child) => root.Add(child);
|
||||||
/// <summary> 查询UI元素 </summary>
|
/// <summary> 查询UI元素 </summary>
|
||||||
|
|||||||
@@ -9,41 +9,7 @@ using UnityEngine.UIElements;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract class ModuleUIPanel : MonoBehaviour {
|
public abstract class ModuleUIPanel : MonoBehaviour {
|
||||||
/// <summary> 绑定的页面 </summary>
|
/// <summary> 绑定的页面 </summary>
|
||||||
public ModuleUIPage ModuleUIPage;
|
public ModuleUIPage UIPage;
|
||||||
/// <summary> 可选初始化 </summary>
|
/// <summary> 绑定的根元素 </summary>
|
||||||
protected virtual void Awake() { }
|
|
||||||
|
|
||||||
public abstract VisualElement Element { get; }
|
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>
|
/// <summary>
|
||||||
/// UI窗口
|
/// UI窗口
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <typeparam name="Data">窗口需要的数据类型</typeparam>
|
public abstract class ModuleUIWindow<T> : ModuleSingle<T> {
|
||||||
public abstract class ModuleUIWindow<Data> : MonoBehaviour {
|
|
||||||
/// <summary> 绑定的页面 </summary>
|
/// <summary> 绑定的页面 </summary>
|
||||||
public ModuleUIPage ModuleUIPage;
|
public ModuleUIPage UIPage;
|
||||||
/// <summary> 必须初始化 </summary>
|
|
||||||
public abstract void Awake();
|
|
||||||
|
|
||||||
/// <summary> 绑定的根元素 </summary>
|
/// <summary> 绑定的根元素 </summary>
|
||||||
public abstract VisualElement Element { get; }
|
public abstract VisualElement Element { get; }
|
||||||
|
|
||||||
/// <summary> 打开窗口,并且传进参数 </summary>
|
|
||||||
public abstract void Open(Data data);
|
|
||||||
/// <summary> 关闭窗口 </summary>
|
|
||||||
public abstract void Close();
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: b6ef7cc76b1474a498a5995587aeac6f
|
guid: de13e4c89e97faf45b5d383070fd8e5e
|
||||||
folderAsset: yes
|
folderAsset: yes
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
+1
-8
@@ -4,7 +4,7 @@ using System.Collections.Generic;
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 单个独立模块
|
/// 单例模块
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract class ModuleSingle<Data> : MonoBehaviour {
|
public abstract class ModuleSingle<Data> : MonoBehaviour {
|
||||||
/// <summary> 模块单例 </summary>
|
/// <summary> 模块单例 </summary>
|
||||||
@@ -16,11 +16,4 @@ public abstract class ModuleSingle<Data> : MonoBehaviour {
|
|||||||
if (instance != null) { Destroy(instance.gameObject); }
|
if (instance != null) { Destroy(instance.gameObject); }
|
||||||
instance = this;
|
instance = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary> 打开 </summary>
|
|
||||||
public virtual void Open(Data data) { throw new NotImplementedException(); }
|
|
||||||
/// <summary> 完成 </summary>
|
|
||||||
public virtual void Complete() { throw new NotImplementedException(); }
|
|
||||||
/// <summary> 关闭 </summary>
|
|
||||||
public virtual void Close() { throw new NotImplementedException(); }
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user