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;
}
}
}
}