123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
-
- namespace XCharts.Runtime
- {
- /// <summary>
- /// the type of symbol.
- /// |标记图形的类型。
- /// </summary>
- public enum SymbolType
- {
- /// <summary>
- /// 不显示标记。
- /// </summary>
- None,
- /// <summary>
- /// 自定义标记。
- /// </summary>
- Custom,
- /// <summary>
- /// 圆形。
- /// </summary>
- Circle,
- /// <summary>
- /// 空心圆。
- /// </summary>
- EmptyCircle,
- /// <summary>
- /// 正方形。可通过设置`itemStyle`的`cornerRadius`变成圆角矩形。
- /// </summary>
- Rect,
- /// <summary>
- /// 空心正方形。
- /// </summary>
- EmptyRect,
- /// <summary>
- /// 三角形。
- /// </summary>
- Triangle,
- /// <summary>
- /// 空心三角形。
- /// </summary>
- EmptyTriangle,
- /// <summary>
- /// 菱形。
- /// </summary>
- Diamond,
- /// <summary>
- /// 空心菱形。
- /// </summary>
- EmptyDiamond,
- /// <summary>
- /// 箭头。
- /// </summary>
- Arrow,
- /// <summary>
- /// 空心箭头。
- /// </summary>
- EmptyArrow
- }
-
- /// <summary>
- /// 系列数据项的标记的图形
- /// </summary>
- [System.Serializable]
- public class SymbolStyle : ChildComponent
- {
- [SerializeField] protected bool m_Show = true;
- [SerializeField] protected SymbolType m_Type = SymbolType.EmptyCircle;
- [SerializeField] protected float m_Size = 0f;
- [SerializeField] protected float m_Gap = 0;
- [SerializeField] protected float m_Width = 0f;
- [SerializeField] protected float m_Height = 0f;
- [SerializeField] protected Vector2 m_Offset = Vector2.zero;
- [SerializeField] protected Sprite m_Image;
- [SerializeField] protected Image.Type m_ImageType;
- [SerializeField] protected Color32 m_Color;
-
- public virtual void Reset()
- {
- m_Show = false;
- m_Type = SymbolType.EmptyCircle;
- m_Size = 0f;
- m_Gap = 0;
- m_Width = 0f;
- m_Height = 0f;
- m_Offset = Vector2.zero;
- m_Image = null;
- m_ImageType = Image.Type.Simple;
- }
-
- /// <summary>
- /// Whether the symbol is showed.
- /// |是否显示标记。
- /// </summary>
- public bool show
- {
- get { return m_Show; }
- set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetAllDirty(); }
- }
- /// <summary>
- /// the type of symbol.
- /// |标记类型。
- /// </summary>
- public SymbolType type
- {
- get { return m_Type; }
- set { if (PropertyUtil.SetStruct(ref m_Type, value)) SetVerticesDirty(); }
- }
- /// <summary>
- /// the size of symbol.
- /// |标记的大小。
- /// </summary>
- public float size
- {
- get { return m_Size; }
- set { if (PropertyUtil.SetStruct(ref m_Size, value)) SetVerticesDirty(); }
- }
- /// <summary>
- /// the gap of symbol and line segment.
- /// |图形标记和线条的间隙距离。
- /// </summary>
- public float gap
- {
- get { return m_Gap; }
- set { if (PropertyUtil.SetStruct(ref m_Gap, value)) SetVerticesDirty(); }
- }
- /// <summary>
- /// 图形的宽。
- /// </summary>
- public float width
- {
- get { return m_Width; }
- set { if (PropertyUtil.SetStruct(ref m_Width, value)) SetAllDirty(); }
- }
- /// <summary>
- /// 图形的高。
- /// </summary>
- public float height
- {
- get { return m_Height; }
- set { if (PropertyUtil.SetStruct(ref m_Height, value)) SetAllDirty(); }
- }
- /// <summary>
- /// 自定义的标记图形。
- /// </summary>
- public Sprite image
- {
- get { return m_Image; }
- set { if (PropertyUtil.SetClass(ref m_Image, value)) SetAllDirty(); }
- }
- /// <summary>
- /// the fill type of image.
- /// |图形填充类型。
- /// </summary>
- public Image.Type imageType
- {
- get { return m_ImageType; }
- set { if (PropertyUtil.SetStruct(ref m_ImageType, value)) SetAllDirty(); }
- }
- /// <summary>
- /// 图形的偏移。
- /// </summary>
- public Vector2 offset
- {
- get { return m_Offset; }
- set { if (PropertyUtil.SetStruct(ref m_Offset, value)) SetAllDirty(); }
- }
- /// <summary>
- /// 图形的颜色。
- /// </summary>
- public Color32 color
- {
- get { return m_Color; }
- set { if (PropertyUtil.SetStruct(ref m_Color, value)) SetAllDirty(); }
- }
- public Vector3 offset3 { get { return new Vector3(m_Offset.x, m_Offset.y, 0); } }
- private List<float> m_AnimationSize = new List<float>() { 0, 5, 10 };
- /// <summary>
- /// the setting for effect scatter.
- /// |带有涟漪特效动画的散点图的动画参数。
- /// </summary>
- public List<float> animationSize { get { return m_AnimationSize; } }
-
- public Color32 GetColor(Color32 defaultColor)
- {
- return ChartHelper.IsClearColor(m_Color) ? defaultColor : m_Color;
- }
- }
- }
|