| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | using System;using System.Collections.Generic;using UnityEngine;namespace XCharts.Runtime{    /// <summary>    /// Split area of axis in grid area, not shown by default.    /// ||坐标轴在 grid 区域中的分隔区域,默认不显示。    /// </summary>    [Serializable]    public class AxisSplitArea : ChildComponent    {        [SerializeField] private bool m_Show;        [SerializeField] private List<Color32> m_Color;        /// <summary>        /// Set this to true to show the splitArea.        /// ||是否显示分隔区域。        /// </summary>        public bool show        {            get { return m_Show; }            set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetVerticesDirty(); }        }        /// <summary>        /// 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.        /// ||分隔区域颜色。分隔区域会按数组中颜色的顺序依次循环设置颜色。默认是一个深浅的间隔色。        /// </summary>        public List<Color32> 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<Color32>() { }                };            }        }        public AxisSplitArea Clone()        {            var axisSplitArea = new AxisSplitArea();            axisSplitArea.show = show;            axisSplitArea.color = new List<Color32>();            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];            }        }    }}
 |