using System; using System.Collections.Generic; using UnityEngine; namespace XCharts.Runtime { /// /// Split area of axis in grid area, not shown by default. /// |坐标轴在 grid 区域中的分隔区域,默认不显示。 /// [Serializable] public class AxisSplitArea : ChildComponent { [SerializeField] private bool m_Show; [SerializeField] private List m_Color; /// /// Set this to true to show the splitArea. /// |是否显示分隔区域。 /// public bool show { get { return m_Show; } set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetVerticesDirty(); } } /// /// Color of split area. SplitArea color could also be set in color array, /// which the split lines would take as their colors in turns. /// Dark and light colors in turns are used by default. /// |分隔区域颜色。分隔区域会按数组中颜色的顺序依次循环设置颜色。默认是一个深浅的间隔色。 /// public List color { get { return m_Color; } set { if (value != null) { m_Color = value; SetVerticesDirty(); } } } public static AxisSplitArea defaultSplitArea { get { return new AxisSplitArea() { m_Show = false, m_Color = new List() { } }; } } public AxisSplitArea Clone() { var axisSplitArea = new AxisSplitArea(); axisSplitArea.show = show; axisSplitArea.color = new List(); ChartHelper.CopyList(axisSplitArea.color, color); return axisSplitArea; } public void Copy(AxisSplitArea splitArea) { show = splitArea.show; color.Clear(); ChartHelper.CopyList(color, splitArea.color); } public Color32 GetColor(int index, BaseAxisTheme theme) { if (color.Count > 0) { var i = index % color.Count; return color[i]; } else { var i = index % theme.splitAreaColors.Count; return theme.splitAreaColors[i]; } } } }