增加RadarceilRate,设置最大最小值的取整倍率

This commit is contained in:
monitor1394
2020-06-02 20:20:56 +08:00
parent c897d78a79
commit 5811ebfda1
5 changed files with 17 additions and 24 deletions

View File

@@ -1,6 +1,7 @@
# 更新日志
* (2020.06.02) 增加`Radar``ceilRate`,设置最大最小值的取整倍率
* (2020.06.02) 优化`Tooltip``formatter`,支持`{c1:1-1:f1}`格式配置
* (2020.05.31) 优化`Background`组件的生效条件,需要有单独的父节点(升级前需要自己处理旧的背景节点)
* (2020.05.30) 优化`PieChart`支持设置`ignoreValue`不显示指定数据

View File

@@ -23,6 +23,7 @@ namespace XCharts
SerializedProperty m_SplitArea;
SerializedProperty m_Indicator;
SerializedProperty m_IndicatorGap;
SerializedProperty m_CeilRate;
SerializedProperty m_IndicatorList;
private Dictionary<string, bool> m_RadarModuleToggle = new Dictionary<string, bool>();
@@ -43,6 +44,7 @@ namespace XCharts
m_SplitArea = prop.FindPropertyRelative("m_SplitArea");
m_Indicator = prop.FindPropertyRelative("m_Indicator");
m_IndicatorGap = prop.FindPropertyRelative("m_IndicatorGap");
m_CeilRate = prop.FindPropertyRelative("m_CeilRate");
m_IndicatorList = prop.FindPropertyRelative("m_IndicatorList");
}
@@ -84,6 +86,8 @@ namespace XCharts
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_SplitNumber);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_CeilRate);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_SplitLine);
drawRect.y += EditorGUI.GetPropertyHeight(m_SplitLine);
@@ -109,7 +113,7 @@ namespace XCharts
int propNum = 1;
if (ChartEditorHelper.IsToggle(m_RadarModuleToggle, prop))
{
propNum += 7;
propNum += 8;
if (m_IndicatorJsonAreaToggle) propNum += 4;
float height = propNum * EditorGUIUtility.singleLineHeight + (propNum - 1) * EditorGUIUtility.standardVerticalSpacing;
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_SplitLine"));

View File

@@ -89,6 +89,7 @@ namespace XCharts
[SerializeField] private bool m_Indicator = true;
[SerializeField] private PositionType m_PositionType = PositionType.Vertice;
[SerializeField] private float m_IndicatorGap = 10;
[SerializeField] protected int m_CeilRate = 0;
[SerializeField] private List<Indicator> m_IndicatorList = new List<Indicator>();
/// <summary>
/// Radar render type, in which 'Polygon' and 'Circle' are supported.
@@ -164,6 +165,14 @@ namespace XCharts
set { if (PropertyUtility.SetStruct(ref m_IndicatorGap, value)) SetComponentDirty(); }
}
/// <summary>
/// 最大最小值向上取整的倍率。默认为0时自动计算。
/// </summary>
public int ceilRate
{
get { return m_CeilRate; }
set { if (PropertyUtility.SetStruct(ref m_CeilRate, value < 0 ? 0 : value)) SetAllDirty(); }
}
/// <summary>
/// /// 显示位置类型。
/// </summary>
public PositionType positionType

View File

@@ -110,31 +110,10 @@ namespace XCharts
public string formatter { get { return m_Formatter; } set { m_Formatter = value; } }
/// <summary>
/// 提示框标题内容的字符串模版格式器。支持用 \n 换行。仅当itemFormatter生效时才有效。
/// 模板变量有{.}、{a}、{b}、{c}、{d}。
/// {.}表示带动态颜色的圆点。
/// {a}为系列名serie的name。
/// {b}为数据项名serieData的name或者类目值如折线图的X轴
/// {c}为数值。
/// {d}为百分比值,注意不带%号。
/// {a1}、{b1}、{c1}表示指定index为1的serie{a}默认index为0的serie。
/// {c1:2}表示索引为1的serie的数据项的第3个数据index为2
/// {c1:2-2}表示索引为1的serie的第3个数据项的第3个数据。
/// {d1:2:f2}表示单独指定了数值的格式化字符串为f2不指定时用numericFormatter
/// 示例:"{a}:{c}"、"{a1}:{c1:f1}"、"{a1}:{c1:1f1}"
/// </summary>
public string titleFormatter { get { return m_TitleFormatter; } set { m_TitleFormatter = value; } }
/// <summary>
/// 提示框单个serie或数据项内容的字符串模版格式器。支持用 \n 换行。当formatter不为空时优先使用formatter否则使用itemFormatter。
/// 模板变量有{.}、{a}、{b}、{c}、{d}。
/// {.}表示带动态颜色的圆点。
/// {a}为系列名serie的name。
/// {b}为数据项名serieData的name或者类目值如折线图的X轴
/// {c}为数值。
/// {d}为百分比值,注意不带%号。
/// {c:2}表示索引为1的serie的数据项的第3个数据index为2
/// {c:2-2}表示索引为1的serie的第3个数据项的第3个数据。
/// {d:f2}表示单独指定了数值的格式化字符串为f2不指定时用numericFormatter
/// 示例:"{a}:{c}"、"{a1}:{c1:f1}"、"{a1}:{c1:1f1}"
/// </summary>
public string itemFormatter { get { return m_ItemFormatter; } set { m_ItemFormatter = value; } }

View File

@@ -249,7 +249,7 @@ namespace XCharts
var rate = serie.animation.GetCurrRate();
var dataChanging = false;
var dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
SerieHelper.GetAllMinMaxData(serie);
SerieHelper.GetAllMinMaxData(serie, radar.ceilRate);
for (int j = 0; j < serie.data.Count; j++)
{
var serieData = serie.data[j];
@@ -390,7 +390,7 @@ namespace XCharts
var pointList = radar.runtimeDataPosList[key];
var startIndex = GetStartShowIndex(serie);
var endIndex = GetEndShowIndex(serie);
SerieHelper.GetDimensionMinMaxData(serie, 1);
SerieHelper.GetDimensionMinMaxData(serie, radar.ceilRate);
for (int j = 0; j < serie.data.Count; j++)
{
var serieData = serie.data[j];