Example05_DynamicChart.cs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. using UnityEngine;
  2. using XCharts.Runtime;
  3. #if INPUT_SYSTEM_ENABLED
  4. using Input = XCharts.Runtime.InputHelper;
  5. #endif
  6. namespace XCharts.Example
  7. {
  8. [DisallowMultipleComponent]
  9. public class Example05_DynamicChart : MonoBehaviour
  10. {
  11. BaseChart chart;
  12. void Awake() { }
  13. void Update()
  14. {
  15. if (Input.GetKeyDown(KeyCode.P))
  16. {
  17. AddPieChart("Dynamic PieChart");
  18. }
  19. if (Input.GetKeyDown(KeyCode.L))
  20. {
  21. AddLineChart("Dynamic LineChart");
  22. }
  23. }
  24. GameObject CreateChartObject(string chartName)
  25. {
  26. for (int i = transform.childCount - 1; i >= 0; i--)
  27. {
  28. Destroy(transform.GetChild(i).gameObject);
  29. }
  30. var chartObject = new GameObject();
  31. chartObject.name = chartName;
  32. chartObject.transform.SetParent(transform);
  33. chartObject.transform.localScale = Vector3.one;
  34. chartObject.transform.localPosition = Vector3.zero;
  35. return chartObject;
  36. }
  37. void AddPieChart(string chartName)
  38. {
  39. var chartObject = CreateChartObject(chartName);
  40. var chart = chartObject.AddComponent<PieChart>();
  41. chart.SetSize(580, 300);
  42. chart.EnsureChartComponent<Title>().show = true;
  43. chart.EnsureChartComponent<Title>().text = chartName;
  44. chart.EnsureChartComponent<Tooltip>().show = true;
  45. chart.EnsureChartComponent<Legend>().show = true;
  46. chart.RemoveData();
  47. chart.AddSerie<Pie>();
  48. for (int i = 0; i < 3; i++)
  49. {
  50. chart.AddData(0, Random.Range(10, 20), "pie" + (i + 1));
  51. }
  52. }
  53. void AddLineChart(string chartName)
  54. {
  55. var chartObject = CreateChartObject(chartName);
  56. var chart = chartObject.AddComponent<PieChart>();
  57. chart.SetSize(580, 300);
  58. chart.EnsureChartComponent<Title>().show = true;
  59. chart.EnsureChartComponent<Title>().text = chartName;
  60. chart.EnsureChartComponent<Legend>().show = false;
  61. var tooltip = chart.EnsureChartComponent<Tooltip>();
  62. tooltip.trigger = Tooltip.Trigger.Axis;
  63. var xAxis = chart.EnsureChartComponent<XAxis>();
  64. var yAxis = chart.EnsureChartComponent<YAxis>();
  65. xAxis.splitNumber = 10;
  66. xAxis.boundaryGap = true;
  67. xAxis.show = true;
  68. yAxis.show = true;
  69. xAxis.type = Axis.AxisType.Category;
  70. yAxis.type = Axis.AxisType.Value;
  71. chart.RemoveData();
  72. chart.AddSerie<Line>();
  73. for (int i = 0; i < 10; i++)
  74. {
  75. chart.AddXAxisData("x" + (i + 1));
  76. chart.AddData(0, Random.Range(10, 100));
  77. }
  78. }
  79. }
  80. }