using System; using Sirenix.OdinInspector; using System.Collections.Generic; using UnityEngine; [Serializable] public class LegionLevelData { [ReadOnly] [LabelText("宽")] public int Width; [ReadOnly] [LabelText("高")] public int Height; [ReadOnly] [LabelText("内径")] public float Radius; [HideInInspector] public List Buildings = new List(); [HideInInspector] [LabelText("出生点A")] public List BornPosA = new List(); [HideInInspector] [LabelText("出生点B")] public List BornPosB = new List(); [HideInInspector] [LabelText("轨道")] public List Tracks = new List(); [Serializable] public class Building { [LabelText("建筑唯一序号")] public int id; [LabelText("建筑ID")] public int buildingID; [LabelText("位置")] public int position; [LabelText("支援建筑")] public int supply = 0; } [Serializable] public class TrackData { //[LabelText("轨道关键点")] [HideInInspector] public List bezierKnotData; [LabelText("起点建筑")] public int startBuilding; [LabelText("终点建筑")] public int endBuilding; [LabelText("运行状态")] public TrackState state; } [Serializable] public class BezierKnotData { public Vector3 position; // 关键点位置 public Vector3 tangentOut; // 指向下一个点的方向 public Vector3 tangentIn; // 从上一个点来的方向 public Quaternion rotation; // 旋转 } public enum TrackState { Stop, // 停止 Moving, // 运行 } }