合并代码

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
@@ -0,0 +1,34 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class VisualPlate : ModuleVisual<DataPlate> {
public Transform viewSpace;
public Transform platePrefab;
public Transform edgeLinePrefab;
protected override void Awake() => ModuleCore.VisualPlate = this;
public override void UpdateVisual(DataPlate data) {
if (data.transform == null) { CreateTransform(data); }
data.transform.localPosition = data.position;
data.polygonMeshFilter.mesh = data.polygon;
if (data.edgeLineRenderer == null) { CreateEdgeLineRenderer(data); }
data.edgeLineRenderer.positionCount = data.edgePoints.Count;
data.edgeLineRenderer.SetPositions(data.edgePoints.ToArray());
//更新全部数据点的可视化内容
data.points.ForEach(ModuleCore.VisualPoint.UpdateVisual);
}
private void CreateTransform(DataPlate data) {
Transform temp = Instantiate(platePrefab, viewSpace);
temp.gameObject.SetActive(true);
data.transform = temp;
data.polygonMeshFilter = temp.GetComponent<MeshFilter>();
}
private void CreateEdgeLineRenderer(DataPlate data) {
Transform temp = Instantiate(edgeLinePrefab, data.transform);
temp.gameObject.SetActive(true);
data.edgeLineRenderer = temp.GetComponent<LineRenderer>();
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ce128d679e2869147a5b5306cef090e3
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,72 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class VisualPoint : ModuleVisual<DataPoint> {
public Transform pointPrefab;//预设
public Transform bezierPrefab;//贝塞尔点预设
public Transform linePrefab;//线渲染器预设
protected override void Awake() => ModuleCore.VisualPoint = this;
public override void UpdateVisual(DataPoint data) {
if (data.transform == null) { CreateTransform(data); }
data.transform.localPosition = data.position;
//贝塞尔曲线可视内容
if (data.isCurveFront) { FrontBezier(data); }
else { ReleaseBezier(data.frontBezierTransform, data.frontBezierLineRenderer); }
if (data.isCurveAfter) { AfterBezier(data); }
else { ReleaseBezier(data.afterBezierTransform, data.afterBezierLineRenderer); }
}
/// <summary> 创建和改变 前贝塞尔点(-) 的可视内容 </summary>
private void FrontBezier(DataPoint data) {
if (data.frontBezierTransform == null) {
data.frontBezierTransform = CreateBezierTransform(data);
}
if (data.frontBezierLineRenderer == null) {
data.frontBezierLineRenderer = CreateBezierLineRenderer(data);
}
Vector3 position = (data.frontBezier - data.position) * 50;
data.frontBezierTransform.localPosition = position;
data.frontBezierLineRenderer.SetPosition(1, position);
}
/// <summary> 创建和改变 后贝塞尔点(+) 的可视内容 </summary>
private void AfterBezier(DataPoint data) {
if (data.afterBezierTransform == null) {
data.afterBezierTransform = CreateBezierTransform(data);
}
if (data.afterBezierLineRenderer == null) {
data.afterBezierLineRenderer = CreateBezierLineRenderer(data);
}
Vector3 position = (data.afterBezier - data.position) * 50;
data.afterBezierTransform.localPosition = position;
data.afterBezierLineRenderer.SetPosition(1, position);
}
/// <summary> 释放贝塞尔点可视内容 </summary>
private void ReleaseBezier(Transform transform, LineRenderer lineRenderer) {
if (transform != null) { Destroy(transform.gameObject); }
if (lineRenderer != null) { Destroy(lineRenderer.gameObject); }
}
#region
private void CreateTransform(DataPoint data) {
Transform parent = data.plate.transform;
data.transform = Instantiate(pointPrefab, parent);
data.transform.gameObject.SetActive(true);
}
private Transform CreateBezierTransform(DataPoint data) {
Transform parent = data.transform;
Transform temp = Instantiate(bezierPrefab, parent);
temp.gameObject.SetActive(true);
return temp;
}
private LineRenderer CreateBezierLineRenderer(DataPoint data) {
Transform parent = data.transform;
Transform temp = Instantiate(linePrefab, parent);
temp.gameObject.SetActive(true);
return temp.GetComponent<LineRenderer>();
}
#endregion
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 058d9230544d654458aaff125e23ad03
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,38 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using MuHua;
public class VisualPolygon : ModuleVisual<DataPolygon> {
public Transform parent;//预设
public Transform trianglePrefab;//三角形预设
public Transform pointPrefab;//贝塞尔点预设
protected override void Awake() => ModuleCore.VisualPolygon = this;
public override void UpdateVisual(DataPolygon data) {
List<DataTriangle> triangles = new List<DataTriangle>(data.triangles);
parent.DestroySon();
for (int i = 0; i < triangles.Count; i++) {
CreateTriangle(triangles[i], i);
}
}
#region
private void CreateTriangle(DataTriangle data, int index) {
Transform triangle = Instantiate(trianglePrefab, parent);
triangle.gameObject.SetActive(true);
triangle.gameObject.name = index.ToString();
CreatePoint(data.a, triangle, "a");
CreatePoint(data.b, triangle, "b");
CreatePoint(data.c, triangle, "c");
}
private void CreatePoint(Vector3 position, Transform parent, string name) {
Transform temp = Instantiate(pointPrefab, parent);
temp.gameObject.SetActive(true);
temp.localPosition = position;
temp.gameObject.name = name;
}
#endregion
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ff1be4cbf1a81844cb1d8f6b8c840ab8
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: