推动Config新增

This commit is contained in:
2025-12-16 17:54:51 +08:00
parent 39a051eacf
commit 60df9a93aa
21 changed files with 427 additions and 117 deletions

View File

@@ -2,10 +2,42 @@ using Convention;
using Demo.Game.Attr;
using Dreamteck.Splines;
using System.Collections;
using System.IO;
using UnityEngine;
namespace Demo.Game
{
namespace ConfigType
{
public class SplineNodeConfig : ScriptLoadableConfig
{
public float NodeSize = 1;
public Color NodeColor = Color.white;
public bool IsSetupNodeRotation = false;
public Vector3 NodeRotation = Vector3.zero;
public int[] LinkSplineCores;
public override void Deserialize(BinaryReader reader)
{
NodeSize = BinarySerializeUtility.ReadFloat(reader);
NodeColor = BinarySerializeUtility.ReadColor(reader);
IsSetupNodeRotation = BinarySerializeUtility.ReadBool(reader);
NodeRotation = BinarySerializeUtility.ReadVec3(reader);
LinkSplineCores = BinarySerializeUtility.DeserializeIntArray(reader);
base.Deserialize(reader);
}
public override void Serialize(BinaryWriter writer)
{
BinarySerializeUtility.WriteFloat(writer, NodeSize);
BinarySerializeUtility.WriteColor(writer, NodeColor);
BinarySerializeUtility.WriteBool(writer, IsSetupNodeRotation);
BinarySerializeUtility.WriteVec3(writer, NodeRotation);
BinarySerializeUtility.SerializeArray(writer, LinkSplineCores);
base.Serialize(writer);
}
}
}
[Scriptable]
public class SplineNode : ScriptableObject
{
@@ -14,7 +46,7 @@ namespace Demo.Game
public static SplineNode Make()
{
var node = new GameObject("", typeof(Node)).AddComponent<SplineNode>();
node.m_MyNode = node.GetOrAddComponent<Node>();
node.m_MyNode = node.GetOrAddComponent<Node>();
return node;
}
@@ -23,14 +55,13 @@ namespace Demo.Game
public Color NodeColor = Color.white;
public bool IsSetupNodeRotation = false;
public Vector3 NodeRotation = Vector3.zero;
public int MyNodeContent = 0;
public Node MyNode => m_MyNode;
public void AddTo(SplineCore core)
{
MyNodeContent = core.NodeContent;
int MyNodeContent = core.NodeContent;
core.MySplineComputer.SetPointColor(MyNodeContent, NodeColor);
core.MySplineComputer.SetPointSize(MyNodeContent, NodeSize);
core.MySplineComputer.SetPointNormal(MyNodeContent, IsSetupNodeRotation ? NodeRotation.normalized : transform.up);