This commit is contained in:
MuHua-123
2024-11-25 18:32:05 +08:00
parent 72d1f89b54
commit 84243e75a8
353 changed files with 17666 additions and 3206 deletions
@@ -0,0 +1,30 @@
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);
/// <summary> 释放可视化内容 </summary>
public abstract void ReleaseVisual(Data data);
/// <summary> 创建可视化内容 </summary>
public void Create<T>(ref T value, Transform original, Transform parent) {
if (value != null) { return; }
Transform temp = CreateTransform(original, parent);
value = temp.GetComponent<T>();
}
public Transform CreateTransform(Transform original, Transform parent) {
Transform temp = Instantiate(original, parent);
temp.gameObject.SetActive(true);
return temp;
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 32a3e92bdd9f12a4dbaeadda30a66075
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,46 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class VisualBaking : ModuleVisual<DataPlate> {
public Transform viewSpace;
public Transform platePrefab;//板片
public Transform suturePrefab;//缝合
public Transform sutureSidePrefab;//缝合边
protected override void Awake() => ModuleCore.VisualBaking = this;
public override void UpdateVisual(DataPlate plate) {
//更新板片
Create(ref plate.baking, platePrefab, viewSpace);
plate.baking.UpdateVisual(plate);
//子数据父对象
Transform parent = plate.design.transform;
//更新线段
plate.sides.ForEach(obj => UpdateVisual(obj, parent));
}
public override void ReleaseVisual(DataPlate data) {
throw new System.NotImplementedException();
}
private void UpdateVisual(DataSide side, Transform parent) {
//Create(ref side.design, sidePrefab, parent);
//side.design.UpdateVisual(side);
//更新缝合线
if (side.suture == null) { return; }
//side.suture.Update();
UpdateVisual(side.suture, viewSpace);
}
/// <summary> 更新缝合数据 </summary>
private void UpdateVisual(DataSuture suture, Transform parent) {
Create(ref suture.baking, suturePrefab, parent);
UpdateVisual(suture.a, suture.baking.transform);
UpdateVisual(suture.b, suture.baking.transform);
suture.baking.UpdateVisual(suture);
}
/// <summary> 更新缝合边 </summary>
private void UpdateVisual(DataSutureSide sutureSide, Transform parent) {
Create(ref sutureSide.baking, sutureSidePrefab, parent);
sutureSide.baking.UpdateVisual(sutureSide);
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 545b7804867d268448f7089215e20f39
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,24 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 连接可视化模块
/// </summary>
public class VisualConnector : ModuleVisual<DataConnector> {
public Transform viewSpace;
public Transform connectorPrefab;//板片
protected override void Awake() => ModuleCore.VisualConnector = this;
public override void UpdateVisual(DataConnector data) {
//更新板片
Create(ref data.visual, connectorPrefab, viewSpace);
data.visual.UpdateVisual(data);
}
public override void ReleaseVisual(DataConnector data) {
if (data.visual != null) {
Destroy(data.visual.gameObject);
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ea4effe5ac0300348b249f05af7bf201
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,57 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 版片可视化模块
/// </summary>
public class VisualDesign : ModuleVisual<DataPlate> {
public Transform viewSpace;
public Transform platePrefab;//板片
public Transform pointPrefab;//点
public Transform sidePrefab;//边
public Transform suturePrefab;//缝合
public Transform sutureSidePrefab;//缝合边
protected override void Awake() => ModuleCore.VisualDesign = this;
public override void UpdateVisual(DataPlate plate) {
//更新板片
Create(ref plate.design, platePrefab, viewSpace);
plate.design.UpdateVisual(plate);
//子数据父对象
Transform parent = plate.design.transform;
//更新点
plate.points.ForEach(obj => UpdateVisual(obj, parent));
//更新线段
plate.sides.ForEach(obj => UpdateVisual(obj, parent));
}
public override void ReleaseVisual(DataPlate data) {
throw new System.NotImplementedException();
}
private void UpdateVisual(DataPoint point, Transform parent) {
Create(ref point.visual, pointPrefab, parent);
point.visual.UpdateVisual(point);
}
private void UpdateVisual(DataSide side, Transform parent) {
Create(ref side.design, sidePrefab, parent);
side.design.UpdateVisual(side);
//更新缝合线
if (side.suture == null) { return; }
side.suture.Update();
UpdateVisual(side.suture, viewSpace);
}
/// <summary> 更新缝合数据 </summary>
private void UpdateVisual(DataSuture suture, Transform parent) {
Create(ref suture.design, suturePrefab, parent);
UpdateVisual(suture.a, suture.design.transform);
UpdateVisual(suture.b, suture.design.transform);
suture.design.UpdateVisual(suture);
}
/// <summary> 更新缝合边 </summary>
private void UpdateVisual(DataSutureSide sutureSide, Transform parent) {
Create(ref sutureSide.design, sutureSidePrefab, parent);
sutureSide.design.UpdateVisual(sutureSide);
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ce128d679e2869147a5b5306cef090e3
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: