合并代码

This commit is contained in:
MuHua-123
2024-11-15 18:28:21 +08:00
parent 497b43a446
commit 72d1f89b54
274 changed files with 4939 additions and 1968 deletions
+16 -1
View File
@@ -2,9 +2,24 @@ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public abstract class ModuleAlgorithm<Data> {
/// <summary>
/// 算法模块
/// </summary>
/// <typeparam name="Data"></typeparam>
public abstract class ModuleAlgorithm<Data> : MonoBehaviour {
/// <summary> 必须要初始化 </summary>
protected abstract void Awake();
/// <summary> 核心模块 </summary>
protected virtual ModuleCore ModuleCore => ModuleCore.I;
/// <summary> 执行算法 </summary>
public abstract void Compute(Data data);
}
/// <summary>
/// 单个算法函数
/// </summary>
/// <typeparam name="Data"></typeparam>
public abstract class ModuleAlgorithmFunction<Data> {
/// <summary> 执行算法 </summary>
public abstract void Compute(Data data);
}
+16 -3
View File
@@ -3,14 +3,27 @@ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 资源模块
/// </summary>
/// <typeparam name="Data">绑定的资源类型</typeparam>
public abstract class ModuleAssets<Data> : MonoBehaviour {
[SerializeField] protected List<Data> assets;
/// <summary> 资产列表 </summary>
public virtual List<Data> Assets => assets;
/// <summary> 必须要初始化 </summary>
protected abstract void Awake();
/// <summary> 核心模块 </summary>
protected virtual ModuleCore ModuleCore => ModuleCore.I;
/// <summary> 数据计数 </summary>
public abstract int Count { get; }
/// <summary> 数据列表 </summary>
public abstract List<Data> Datas { get; }
/// <summary> 添加数据 </summary>
public abstract void Add(Data data);
/// <summary> 删除数据 </summary>
public abstract void Remove(Data data);
/// <summary> 查询数据 </summary>
public abstract Data Find(int index);
/// <summary> 循环列表 </summary>
public abstract void ForEach(Action<Data> action);
}
+19
View File
@@ -0,0 +1,19 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 构造器
/// 根据原型构造数据
/// </summary>
/// <typeparam name="Origin"></typeparam>
/// <typeparam name="Data"></typeparam>
public abstract class ModuleBuilder<Origin, Data> : MonoBehaviour {
/// <summary> 必须要初始化 </summary>
protected abstract void Awake();
/// <summary> 核心模块 </summary>
protected virtual ModuleCore ModuleCore => ModuleCore.I;
/// <summary> 根据原型构造数据 </summary>
public abstract Data To(Origin origin);
}
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c5b9eb7c85f467e42a3632003cc5c1c7
guid: 37fd3673cacd6294f8a1de0ddc48768a
MonoImporter:
externalObjects: {}
serializedVersion: 2
+56 -21
View File
@@ -4,11 +4,16 @@ using System.Collections.Generic;
using UnityEngine;
using MuHua;
/// <summary>
/// 核心模块,实现业务逻辑
/// </summary>
public class ModuleCore : Module<ModuleCore> {
#region
/// <summary> 预设模板资产 </summary>
public ModuleAssets<DataPresetsPlate> PresetsPlateAssets;
/// <summary> 板资产 </summary>
public ModuleAssets<DataPlate> AssetsPlate;
/// <summary> 预设板片资产 </summary>
public ModuleAssets<DataPlatePresets> AssetsPlatePresets;
#endregion
#region
@@ -20,27 +25,57 @@ public class ModuleCore : Module<ModuleCore> {
public ModuleUIWindow<Action> PresetsPlateWindow;
#endregion
#region
/// <summary> 代理模块 </summary>
public ModuleAgent ModuleAgent;
/// <summary> 根据设计点生成边缘算法模块 </summary>
public ModuleAlgorithm<DataPlate> GenerateEdge = new AlgorithmGenerateEdge();
/// <summary> 边缘排序算法模块 </summary>
public ModuleAlgorithm<DataPlate> EdgeSort = new AlgorithmEdge();
/// <summary> 多边形算法模块 </summary>
public ModuleAlgorithm<DataPlate> Polygon = new AlgorithmPolygon();
/// <summary> 板片设计模块 </summary>
public ModulePlateDesign PlateDesign;
/// <summary> 板片设计相机视图 </summary>
public ModuleViewCamera PlateDesignViewCamera;
#region
/// <summary> 设计视图相机模块 </summary>
public ModuleViewCamera ViewCameraDesign;
/// <summary> 板片烘焙相机视图 </summary>
public ModuleViewCamera PlateBakingViewCamera;
public ModuleViewCamera ViewCameraBaking;
#endregion
#region
/// <summary> 板片设计输入模块 </summary>
public ModuleViewInput PlateDesignViewInput;
/// <summary> 板片烘焙输入模块 </summary>
public ModuleViewInput PlateBakingViewInput;
#region 广
/// <summary> 广播板片数据模块 </summary>
public ModuleSending<DataPlate> SendingPlate;
/// <summary> 广播板片数据点模块 </summary>
public ModuleSending<DataPoint> SendingPoint;
/// <summary> 广播查询数据模块 </summary>
public ModuleSending<DataFindPoint> SendingFindPoint;
#endregion
#region
/// <summary> 设计UI输入模块 </summary>
public ModuleUIInput<UIInputDesignUnit> UIInputDesign;
#endregion
#region
/// <summary> 预设板片转换板片 </summary>
public ModuleBuilder<DataPlatePresets, DataPlate> PlatePresetsToPlate;
/// <summary> 插入点数据转换板片上的点 </summary>
public ModuleBuilder<DataInsertPoint, DataPoint> InsertPointToPoint;
#endregion
#region
/// <summary> 板片可视化内容生成模块 </summary>
public ModuleVisual<DataPlate> VisualPlate;
/// <summary> 点可视化内容生成模块 </summary>
public ModuleVisual<DataPoint> VisualPoint;
/// <summary> 多边形可视化内容生成模块 </summary>
public ModuleVisual<DataPolygon> VisualPolygon;
#endregion
#region
/// <summary> 查询点算法模块 </summary>
public ModuleAlgorithm<DataFindPoint> AlgorithmFindPoint;
/// <summary> 查询贝塞尔点算法模块 </summary>
public ModuleAlgorithm<DataFindBezier> AlgorithmFindBezier;
/// <summary> 插入点算法模块 </summary>
public ModuleAlgorithm<DataInsertPoint> AlgorithmInsertPoint;
/// <summary> 多边形算法模块 </summary>
public ModuleAlgorithm<DataPlate> AlgorithmPolygon;
///// <summary> 边缘排序算法模块 </summary>
//public ModuleAlgorithm<DataPlate> EdgeSort = new AlgorithmEdge();
#endregion
}
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 25f8d980388c4434381edd852a47ff9a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,18 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ModuleInput : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: f56f94c154ec7d84eb464a1509810d78
guid: 890a3e1c641efcb418cc76bfb893d22e
MonoImporter:
externalObjects: {}
serializedVersion: 2
@@ -0,0 +1,26 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
/// <summary>
/// UI输入模块
/// </summary>
/// <typeparam name="T"></typeparam>
public abstract class ModuleUIInput<T> : MonoBehaviour {
/// <summary> 必须要初始化 </summary>
protected abstract void Awake();
/// <summary> 核心模块 </summary>
protected virtual ModuleCore ModuleCore => ModuleCore.I;
/// <summary> 当前输入单元 </summary>
public abstract T Current { get; }
/// <summary> 改变输入单元时触发 </summary>
public abstract event Action<T> OnChangeInput;
/// <summary> 改变输入单元 </summary>
public abstract void ChangeInput(T input);
/// <summary> 绑定UI </summary>
public abstract void Binding(VisualElement element);
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 41107ff888d44274e9593642528ccdd6
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
-61
View File
@@ -1,61 +0,0 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public abstract class ModulePlateDesign : MonoBehaviour {
/// <summary> 必须初始化 </summary>
protected virtual void Awake() {
ModuleCore.PlateDesign = this;
}
/// <summary> 核心模块 </summary>
protected virtual ModuleCore ModuleCore => ModuleCore.I;
/// <summary> 视图相机模块 </summary>
protected virtual ModuleViewCamera ViewCamera => ModuleCore.PlateDesignViewCamera;
/// <summary> 添加一个板片数据 </summary>
public abstract void AddData(DataPlate data);
#region
/// <summary> 是否有效的边缘点 </summary>
public abstract bool IsValidEdgePoint { get; }
/// <summary> 返回当前边缘点位置 </summary>
public abstract Vector3 EdgePointPosition { get; }
/// <summary> 选中一个边缘点 </summary>
public abstract void SelectEdgePoint(Vector3 screenPosition);
/// <summary> 改变边缘点位置 </summary>
public abstract void ChangeEdgePoint(Vector3 localPosition);
/// <summary> 插入一个边缘点 </summary>
public abstract void InsertEdgePoint(Vector3 screenPosition);
/// <summary> 释放边缘点 </summary>
public abstract void ReleaseEdgePoint();
#endregion
#region
/// <summary> 是否有效的设计点 </summary>
public abstract bool IsValidDesignPoint { get; }
/// <summary> 返回当前设计点位置 </summary>
public abstract Vector3 DesignPointPosition { get; }
/// <summary> 选中一个设计点 </summary>
public abstract void SelectDesignPoint(Vector3 screenPosition);
/// <summary> 改变设计点位置 </summary>
public abstract void ChangeDesignPoint(Vector3 localPosition);
/// <summary> 插入一个设计点 </summary>
public abstract void InsertDesignPoint(Vector3 screenPosition);
/// <summary> 释放设计点 </summary>
public abstract void ReleaseDesignPoint();
#endregion
#region 线
/// <summary> 是否有效的贝塞尔点 </summary>
public abstract bool IsValidBezierPoint { get; }
/// <summary> 返回当前贝塞尔点位置 </summary>
public abstract Vector3 BezierPointPosition { get; }
/// <summary> 选中一个贝塞尔点 </summary>
public abstract void SelectBezierPoint(Vector3 screenPosition);
/// <summary> 改变贝塞尔点位置 </summary>
public abstract void ChangeBezierPoint(Vector3 localPosition);
/// <summary> 释放贝塞尔点 </summary>
public abstract void ReleaseBezierPoint();
#endregion
}
+21
View File
@@ -0,0 +1,21 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 发送模块 广播数据
/// </summary>
public abstract class ModuleSending<T> : MonoBehaviour {
/// <summary> 必须要初始化 </summary>
protected abstract void Awake();
/// <summary> 核心模块 </summary>
protected virtual ModuleCore ModuleCore => ModuleCore.I;
/// <summary> 当前输入单元 </summary>
public abstract T Current { get; }
/// <summary> 改变输入单元时触发 </summary>
public abstract event Action<T> OnChange;
/// <summary> 改变输入单元 </summary>
public abstract void Change(T obj);
}
+11
View File
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: eaecf945c01ab084aaa6cdb6ebcd7e0f
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8d093e4c9062c4044bcb09ee5f5abb8b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,15 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
public abstract class ModuleUIPanel : MonoBehaviour {
/// <summary> 绑定的页面 </summary>
public ModuleUIPage ModuleUIPage;
/// <summary> 必须初始化 </summary>
public abstract void Awake();
/// <summary> 核心模块 </summary>
protected virtual ModuleCore ModuleCore => ModuleCore.I;
public abstract VisualElement Element { get; }
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: d4ba0921b8d30f548ba33b96c76f2c48
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+3
View File
@@ -3,6 +3,9 @@ using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
/// <summary>
/// UI页面
/// </summary>
public abstract class ModuleUIPage : MonoBehaviour {
public UIDocument document;
/// <summary> 根目录文档 </summary>
+4
View File
@@ -2,6 +2,10 @@ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// UI窗口
/// </summary>
/// <typeparam name="Data">窗口需要的数据类型</typeparam>
public abstract class ModuleUIWindow<Data> : MonoBehaviour {
/// <summary> 绑定的页面 </summary>
public ModuleUIPage ModuleUIPage;
+25 -21
View File
@@ -2,32 +2,36 @@ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 视图相机,把内容渲染到渲染纹理上
/// </summary>
public abstract class ModuleViewCamera : MonoBehaviour {
/// <summary> 视图空间位置 </summary>
public abstract Vector3 Position { get; set; }
/// <summary> 视图空间旋转 </summary>
public abstract Vector3 EulerAngles { get; set; }
/// <summary> 视图空间缩放 </summary>
public abstract Vector3 LocalScale { get; set; }
/// <summary> 相机正交大小 </summary>
public abstract float OrthographicSize { get; set; }
/// <summary> 当前视图空间的中心点 </summary>
public abstract Vector3 CurrentViewSpaceCenter { get; }
/// <summary> 相机的世界位置 </summary>
public abstract Vector3 CameraWorldPosition { get; }
/// <summary> 必须要初始化 </summary>
protected abstract void Awake();
/// <summary> 核心模块 </summary>
protected virtual ModuleCore ModuleCore => ModuleCore.I;
/// <summary> 视图位置 </summary>
public abstract Vector3 position { get; set; }
/// <summary> 视图旋转 </summary>
public abstract Vector3 eulerAngles { get; set; }
/// <summary> 视图缩放 </summary>
public abstract float scale { get; set; }
/// <summary> 渲染纹理 </summary>
public abstract RenderTexture RenderTexture { get; }
protected abstract void Awake();
protected virtual ModuleCore ModuleCore => ModuleCore.I;
/// <summary> 更新渲染纹理 </summary>
public abstract void UpdateRenderTexture(int x, int y);
/// <summary> 屏幕坐标转换视图坐标(0-1) </summary>
public abstract Vector3 ScreenToViewPosition(Vector3 screenPosition);
/// <summary> 屏幕坐标转换世界坐标 </summary>
public abstract Vector2 ScreenToWorldPosition(Vector2 screenPosition);
/// <summary> 屏幕坐标转换世界坐标 (0-1) </summary>
public abstract Vector2 ScreenToViewPosition(Vector2 screenPosition);
/// <summary> 从屏幕坐标发射一条射线 </summary>
public abstract Ray ScreenPointToRay(Vector2 screenPosition);
public abstract Vector3 ScreenToWorldPosition(Vector3 screenPosition);
/// <summary> 视图坐标(0-1)转换屏幕坐标 </summary>
public abstract Vector3 ViewToScreenPosition(Vector3 screenPosition);
/// <summary> 视图坐标(0-1)转换世界坐标 </summary>
public abstract Vector3 ViewToWorldPosition(Vector3 screenPosition);
/// <summary> 世界坐标转换屏幕坐标 </summary>
public abstract Vector3 WorldToScreenPosition(Vector3 screenPosition);
/// <summary> 世界坐标转换视图坐标(0-1) </summary>
public abstract Vector3 WorldToViewPosition(Vector3 screenPosition);
}
-45
View File
@@ -1,45 +0,0 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public abstract class ModuleViewInput : MonoBehaviour {
/// <summary> 主键输入模块类型 </summary>
public abstract event Action<Type> OnInputType;
/// <summary> 必须要初始化 </summary>
protected abstract void Awake();
/// <summary> 核心模块 </summary>
protected virtual ModuleCore ModuleCore => ModuleCore.I;
public abstract void SetPrimaryKeyInput<T>(T inputUnit) where T : ModuleViewInputUnit;
/// <summary> 按下鼠标左键 </summary>
public abstract void DownLeftMouse(DataMouseInput data);
/// <summary> 拖拽鼠标左键 </summary>
public abstract void DragLeftMouse(DataMouseInput data);
/// <summary> 移动鼠标左键 </summary>
public abstract void MoveLeftMouse(DataMouseInput data);
/// <summary> 释放鼠标左键 </summary>
public abstract void ReleaseLeftMouse(DataMouseInput data);
/// <summary> 按下鼠标右键 </summary>
public abstract void DownRightMouse(DataMouseInput data);
/// <summary> 拖拽鼠标右键 </summary>
public abstract void DragRightMouse(DataMouseInput data);
/// <summary> 移动鼠标右键 </summary>
public abstract void MoveRightMouse(DataMouseInput data);
/// <summary> 释放鼠标右键 </summary>
public abstract void ReleaseRightMouse(DataMouseInput data);
/// <summary> 按下鼠标中键 </summary>
public abstract void DownMiddleMouse(DataMouseInput data);
/// <summary> 拖拽鼠标中键 </summary>
public abstract void DragMiddleMouse(DataMouseInput data);
/// <summary> 移动鼠标中键 </summary>
public abstract void MoveMiddleMouse(DataMouseInput data);
/// <summary> 释放鼠标中键 </summary>
public abstract void ReleaseMiddleMouse(DataMouseInput data);
/// <summary> 鼠标滚轮 </summary>
public abstract void ScrollWheel(DataMouseInput data);
}
+16
View File
@@ -0,0 +1,16 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 生成可视化内容模块
/// </summary>
public abstract class ModuleVisual<Data> : MonoBehaviour {
/// <summary> 必须要初始化 </summary>
protected abstract void Awake();
/// <summary> 核心模块 </summary>
protected virtual ModuleCore ModuleCore => ModuleCore.I;
/// <summary> 更新可视化 </summary>
public abstract void UpdateVisual(Data data);
}
+11
View File
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 32a3e92bdd9f12a4dbaeadda30a66075
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: