diff --git a/Editor/Windows/PraseExternalDataEditor.cs b/Editor/Windows/PraseExternalDataEditor.cs index 52b85f6f..d7e47f0d 100644 --- a/Editor/Windows/PraseExternalDataEditor.cs +++ b/Editor/Windows/PraseExternalDataEditor.cs @@ -8,6 +8,8 @@ namespace XCharts.Editor { public class PraseExternalDataEditor : UnityEditor.EditorWindow { + [SerializeField] private int m_DataDimension = 1; + [SerializeField] private double m_DefaultYValue = 0; private static BaseChart s_Chart; private static Serie s_Serie; private static Axis s_Axis; @@ -46,8 +48,13 @@ namespace XCharts.Editor return; } EditorGUILayout.LabelField("Input external data (echarts data):"); + m_DataDimension = EditorGUILayout.IntField("Data Dimension", m_DataDimension); + if (m_DataDimension < 1) + m_DataDimension = 1; + else if (m_DataDimension == 2) + m_DefaultYValue = EditorGUILayout.DoubleField("Default Y Value", m_DefaultYValue); inputJsonText = EditorGUILayout.TextArea(inputJsonText, GUILayout.Height(400)); - if (GUILayout.Button("Add")) + if (GUILayout.Button("Try Add")) { if (s_Serie != null) { @@ -76,7 +83,7 @@ namespace XCharts.Editor } } - private static bool ParseArrayData(Axis axis, string arrayData) + private bool ParseArrayData(Axis axis, string arrayData) { arrayData = arrayData.Trim(); if (!arrayData.StartsWith("data: Array")) return false; @@ -95,7 +102,7 @@ namespace XCharts.Editor return true; } - private static bool ParseArrayData(Serie serie, string arrayData) + private bool ParseArrayData(Serie serie, string arrayData) { arrayData = arrayData.Trim(); if (!arrayData.StartsWith("data: Array")) return false; @@ -120,7 +127,7 @@ namespace XCharts.Editor return true; } - private static bool ParseJsonData(Axis axis, string jsonData) + private bool ParseJsonData(Axis axis, string jsonData) { if (!CheckJsonData(ref jsonData)) return false; axis.data.Clear(); @@ -140,7 +147,7 @@ namespace XCharts.Editor /// 从json中导入数据 /// /// - private static bool ParseJsonData(Serie serie, string jsonData) + private bool ParseJsonData(Serie serie, string jsonData) { if (!CheckJsonData(ref jsonData)) return false; if (s_LinksData) serie.ClearLinks(); @@ -156,7 +163,10 @@ namespace XCharts.Editor if (data.Length == 2 && !double.TryParse(data[0], out value)) { double.TryParse(data[1], out value); - serieData.data = new List() { i, value }; + if (m_DataDimension == 2) + serieData.data = new List() { i, m_DefaultYValue, value }; + else + serieData.data = new List() { i, value }; serieData.name = data[0].Replace("\"", "").Trim(); } else @@ -187,7 +197,10 @@ namespace XCharts.Editor if (a.StartsWith("value:")) { double value = double.Parse(a.Substring(6, a.Length - 6)); - serieData.data = new List() { i, value }; + if (m_DataDimension == 2) + serieData.data = new List() { i, m_DefaultYValue, value }; + else + serieData.data = new List() { i, value }; } else if (a.StartsWith("name:")) { @@ -213,7 +226,10 @@ namespace XCharts.Editor if (flag) { var serieData = new SerieData(); - serieData.data = new List() { i, value }; + if (m_DataDimension == 2) + serieData.data = new List() { i, m_DefaultYValue, value }; + else + serieData.data = new List() { i, value }; serie.AddSerieData(serieData); } }