diff --git a/Assets/XCharts/CHANGELOG.md b/Assets/XCharts/CHANGELOG.md index f94f397d..e5f3a012 100644 --- a/Assets/XCharts/CHANGELOG.md +++ b/Assets/XCharts/CHANGELOG.md @@ -1,6 +1,7 @@ # 更新日志 +* (2019.11.30) 增加`GaugeChart`仪表盘 * (2019.11.22) 修复`BarChart`清空数据重新赋值后`SerieLabel`显示异常的问题 * (2019.11.16) 修复`SerieLabel`设置`color`等参数不生效的问题 * (2019.11.12) 发布`v1.0.5`版本 diff --git a/Assets/XCharts/Demo/Runtime/Demo30_PieChart.cs b/Assets/XCharts/Demo/Runtime/Demo30_PieChart.cs index 1ae027c7..90f506be 100644 --- a/Assets/XCharts/Demo/Runtime/Demo30_PieChart.cs +++ b/Assets/XCharts/Demo/Runtime/Demo30_PieChart.cs @@ -66,10 +66,10 @@ namespace XCharts chart.RemoveData(); serie = chart.AddSerie(SerieType.Pie, "访问来源"); - serie.pieRadius[0] = 0; - serie.pieRadius[1] = 110; - serie.pieCenter[0] = 0.5f; - serie.pieCenter[1] = 0.4f; + serie.radius[0] = 0; + serie.radius[1] = 110; + serie.center[0] = 0.5f; + serie.center[1] = 0.4f; chart.AddData(0, 335, "直接访问"); chart.AddData(0, 310, "邮件营销"); chart.AddData(0, 243, "联盟广告"); @@ -105,10 +105,10 @@ namespace XCharts IEnumerator Doughnut() { chart.title.subText = "圆环图"; - serie.pieRadius[0] = 2f; - while (serie.pieRadius[0] < serie.pieRadius[1] * 0.7f) + serie.radius[0] = 2f; + while (serie.radius[0] < serie.radius[1] * 0.7f) { - serie.pieRadius[0] += m_RadiusSpeed * Time.deltaTime; + serie.radius[0] += m_RadiusSpeed * Time.deltaTime; chart.RefreshChart(); yield return null; } @@ -134,14 +134,14 @@ namespace XCharts chart.AddData(1, 335, "直达"); chart.AddData(1, 679, "营销广告"); chart.AddData(1, 1548, "搜索引擎"); - serie1.pieRadius[0] = 0; - serie1.pieRadius[1] = 2f; - serie1.pieCenter[0] = 0.5f; - serie1.pieCenter[1] = 0.4f; + serie1.radius[0] = 0; + serie1.radius[1] = 2f; + serie1.center[0] = 0.5f; + serie1.center[1] = 0.4f; chart.RefreshChart(); - while (serie1.pieRadius[1] < serie.pieRadius[0] * 0.75f) + while (serie1.radius[1] < serie.radius[0] * 0.75f) { - serie1.pieRadius[1] += m_RadiusSpeed * Time.deltaTime; + serie1.radius[1] += m_RadiusSpeed * Time.deltaTime; chart.RefreshChart(); yield return null; } @@ -163,7 +163,7 @@ namespace XCharts chart.legend.show = false; serie1.ClearData(); serie.ClearData(); - serie1.pieRadius = serie.pieRadius = new float[2] { 0, 80 }; + serie1.radius = serie.radius = new float[2] { 0, 80 }; serie1.label.position = SerieLabel.Position.Outside; serie1.label.lineType = SerieLabel.LineType.Curves; serie1.label.color = Color.clear; @@ -179,24 +179,24 @@ namespace XCharts chart.AddData(i, 40, "rose8"); } - while (serie.pieCenter[0] > 0.25f || serie1.pieCenter[0] < 0.7f) + while (serie.center[0] > 0.25f || serie1.center[0] < 0.7f) { - if (serie.pieCenter[0] > 0.25f) serie.pieCenter[0] -= m_CenterSpeed * Time.deltaTime; - if (serie1.pieCenter[0] < 0.7f) serie1.pieCenter[0] += m_CenterSpeed * Time.deltaTime; + if (serie.center[0] > 0.25f) serie.center[0] -= m_CenterSpeed * Time.deltaTime; + if (serie1.center[0] < 0.7f) serie1.center[0] += m_CenterSpeed * Time.deltaTime; chart.RefreshChart(); yield return null; } yield return new WaitForSeconds(1); - while (serie.pieRadius[0] > 3f) + while (serie.radius[0] > 3f) { - serie.pieRadius[0] -= m_RadiusSpeed * Time.deltaTime; - serie1.pieRadius[0] -= m_RadiusSpeed * Time.deltaTime; + serie.radius[0] -= m_RadiusSpeed * Time.deltaTime; + serie1.radius[0] -= m_RadiusSpeed * Time.deltaTime; chart.RefreshChart(); yield return null; } - serie.pieRadius[0] = 0; - serie1.pieRadius[0] = 0; + serie.radius[0] = 0; + serie1.radius[0] = 0; serie.pieRoseType = RoseType.Area; serie1.pieRoseType = RoseType.Radius; chart.RefreshChart(); diff --git a/Assets/XCharts/Demo/Runtime/Demo70_Gauge.cs b/Assets/XCharts/Demo/Runtime/Demo70_Gauge.cs new file mode 100644 index 00000000..d97a90f9 --- /dev/null +++ b/Assets/XCharts/Demo/Runtime/Demo70_Gauge.cs @@ -0,0 +1,70 @@ +using System.Runtime.InteropServices; +/******************************************/ +/* */ +/* Copyright (c) 2018 monitor1394 */ +/* https://github.com/monitor1394 */ +/* */ +/******************************************/ + + +using UnityEngine; + +namespace XCharts +{ + [DisallowMultipleComponent] + [ExecuteInEditMode] + public class Demo70_Gauge : MonoBehaviour + { + private GaugeChart chart; + private float updateTime; + + void Awake() + { + chart = gameObject.GetComponent(); + if (chart == null) + { + chart = gameObject.AddComponent(); + } + chart.title.text = "GaugeChart"; + chart.RemoveData(); + + var serie = chart.AddSerie(SerieType.Gauge, "速度"); + serie.min = 0; + serie.max = 220; + serie.startAngle = -125; + serie.endAngle = 125; + serie.center[0] = 0.5f; + serie.center[1] = 0.5f; + serie.radius[0] = 80; + serie.splitNumber = 5; + serie.animation.updateAnimation = true; + serie.arcShaped = true; + + serie.titleStyle.show = true; + serie.titleStyle.textStyle.offset = new Vector2(0, 20); + + serie.label.show = true; + serie.label.offset = new Vector3(0, -20); + + serie.gaugeAxis.show = true; + serie.gaugeAxis.axisLine.width = 15; + + serie.gaugePointer.show = true; + serie.gaugePointer.width = 15; + + var value = UnityEngine.Random.Range(serie.min, serie.max); + chart.AddData(0, value, "km/h"); + } + + void Update() + { + updateTime += Time.deltaTime; + if (updateTime > 2) + { + updateTime = 0; + var value = UnityEngine.Random.Range(0, 220); + chart.UpdateData(0, 0, value); + } + } + } +} \ No newline at end of file diff --git a/Assets/XCharts/Demo/Runtime/Demo70_Gauge.cs.meta b/Assets/XCharts/Demo/Runtime/Demo70_Gauge.cs.meta new file mode 100644 index 00000000..d5569309 --- /dev/null +++ b/Assets/XCharts/Demo/Runtime/Demo70_Gauge.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 250f744fcb07d4401994d964c4369d9d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/XCharts/Demo/Runtime/Demo_Test.cs b/Assets/XCharts/Demo/Runtime/Demo_Test.cs index cb171b5c..b78d166e 100644 --- a/Assets/XCharts/Demo/Runtime/Demo_Test.cs +++ b/Assets/XCharts/Demo/Runtime/Demo_Test.cs @@ -14,27 +14,24 @@ namespace XCharts [ExecuteInEditMode] public class Demo_Test : MonoBehaviour { - LineChart chart; + private float updateTime = 0; + CoordinateChart chart; void Awake() { - chart = gameObject.GetComponent(); + chart = gameObject.GetComponent(); if (chart == null) { - chart = gameObject.AddComponent(); + chart = gameObject.AddComponent(); } - - var buttom = transform.parent.gameObject.GetComponentInChildren