Pie.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using UnityEngine;
  2. namespace XCharts.Runtime
  3. {
  4. [System.Serializable]
  5. [SerieConvert(typeof(Line), typeof(Bar))]
  6. [SerieHandler(typeof(PieHandler), true)]
  7. [DefaultAnimation(AnimationType.Clockwise)]
  8. [SerieComponent(typeof(LabelStyle), typeof(LabelLine), typeof(TitleStyle), typeof(EmphasisStyle), typeof(BlurStyle), typeof(SelectStyle))]
  9. [SerieDataComponent(typeof(ItemStyle), typeof(LabelStyle), typeof(LabelLine), typeof(EmphasisStyle), typeof(BlurStyle), typeof(SelectStyle))]
  10. [SerieDataExtraField("m_Ignore", "m_Selected", "m_Radius")]
  11. public class Pie : Serie
  12. {
  13. [SerializeField][Since("v3.8.1")] private bool m_RadiusGradient = false;
  14. public override SerieColorBy defaultColorBy { get { return SerieColorBy.Data; } }
  15. public override bool titleJustForSerie { get { return true; } }
  16. /// <summary>
  17. /// Whether to use gradient color in pie chart.
  18. /// || 是否开启半径方向的渐变效果。
  19. /// </summary>
  20. public bool radiusGradient
  21. {
  22. get { return m_RadiusGradient; }
  23. set { if (PropertyUtil.SetStruct(ref m_RadiusGradient, value)) { SetVerticesDirty(); } }
  24. }
  25. public static Serie AddDefaultSerie(BaseChart chart, string serieName)
  26. {
  27. var serie = chart.AddSerie<Pie>(serieName);
  28. chart.AddData(serie.index, Random.Range(10, 100), "pie1");
  29. chart.AddData(serie.index, Random.Range(10, 100), "pie2");
  30. chart.AddData(serie.index, Random.Range(10, 100), "pie3");
  31. return serie;
  32. }
  33. public static Pie ConvertSerie(Serie serie)
  34. {
  35. var newSerie = SerieHelper.CloneSerie<Pie>(serie);
  36. return newSerie;
  37. }
  38. }
  39. }