using System.Collections.Generic; using UnityEngine; namespace XCharts.Runtime { /// /// 多样式数值。 /// [Since("v3.8.0")] [System.Serializable] public class MLValue : ChildComponent { /// /// the type of value. /// ||数值类型。 /// public enum Type { /// /// Percent value form. /// ||百分比形式。 /// Percent, /// /// Absolute value form. /// ||绝对值形式。 /// Absolute, /// /// Extra value form. /// ||额外形式。 /// Extra } [SerializeField] private Type m_Type; [SerializeField] private float m_Value; public Type type { get { return m_Type; } set { m_Type = value; } } public float value { get { return m_Value; } set { m_Value = value; } } public MLValue(float value) { m_Type = Type.Percent; m_Value = value; } public MLValue(Type type, float value) { m_Type = type; m_Value = value; } /// /// Get the value by type. /// ||根据类型获取值。 /// /// 默认值 /// public float GetValue(float total) { switch (m_Type) { case Type.Percent: return m_Value * total; case Type.Absolute: return m_Value; case Type.Extra: return total + m_Value; default: return 0; } } } }