From 5811ebfda13d1a23ea5e77e1834072c43b848b8e Mon Sep 17 00:00:00 2001 From: monitor1394 Date: Tue, 2 Jun 2020 20:20:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0`Radar`=E7=9A=84`ceilRate`?= =?UTF-8?q?=EF=BC=8C=E8=AE=BE=E7=BD=AE=E6=9C=80=E5=A4=A7=E6=9C=80=E5=B0=8F?= =?UTF-8?q?=E5=80=BC=E7=9A=84=E5=8F=96=E6=95=B4=E5=80=8D=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/XCharts/CHANGELOG.md | 1 + .../Editor/PropertyDrawers/RadarDrawer.cs | 6 +++++- .../XCharts/Runtime/Component/Main/Radar.cs | 9 ++++++++ .../XCharts/Runtime/Component/Main/Tooltip.cs | 21 ------------------- Assets/XCharts/Runtime/RadarChart.cs | 4 ++-- 5 files changed, 17 insertions(+), 24 deletions(-) diff --git a/Assets/XCharts/CHANGELOG.md b/Assets/XCharts/CHANGELOG.md index 9f3d5f9a..ce9d2db1 100644 --- a/Assets/XCharts/CHANGELOG.md +++ b/Assets/XCharts/CHANGELOG.md @@ -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`不显示指定数据 diff --git a/Assets/XCharts/Editor/PropertyDrawers/RadarDrawer.cs b/Assets/XCharts/Editor/PropertyDrawers/RadarDrawer.cs index 994cb1b0..74277b8a 100644 --- a/Assets/XCharts/Editor/PropertyDrawers/RadarDrawer.cs +++ b/Assets/XCharts/Editor/PropertyDrawers/RadarDrawer.cs @@ -23,6 +23,7 @@ namespace XCharts SerializedProperty m_SplitArea; SerializedProperty m_Indicator; SerializedProperty m_IndicatorGap; + SerializedProperty m_CeilRate; SerializedProperty m_IndicatorList; private Dictionary m_RadarModuleToggle = new Dictionary(); @@ -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")); diff --git a/Assets/XCharts/Runtime/Component/Main/Radar.cs b/Assets/XCharts/Runtime/Component/Main/Radar.cs index 68c83d14..e71fcea7 100644 --- a/Assets/XCharts/Runtime/Component/Main/Radar.cs +++ b/Assets/XCharts/Runtime/Component/Main/Radar.cs @@ -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 m_IndicatorList = new List(); /// /// 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(); } } /// + /// 最大最小值向上取整的倍率。默认为0时自动计算。 + /// + public int ceilRate + { + get { return m_CeilRate; } + set { if (PropertyUtility.SetStruct(ref m_CeilRate, value < 0 ? 0 : value)) SetAllDirty(); } + } + /// /// /// 显示位置类型。 /// public PositionType positionType diff --git a/Assets/XCharts/Runtime/Component/Main/Tooltip.cs b/Assets/XCharts/Runtime/Component/Main/Tooltip.cs index 15c0a0f5..c2b16e70 100644 --- a/Assets/XCharts/Runtime/Component/Main/Tooltip.cs +++ b/Assets/XCharts/Runtime/Component/Main/Tooltip.cs @@ -110,31 +110,10 @@ namespace XCharts public string formatter { get { return m_Formatter; } set { m_Formatter = value; } } /// /// 提示框标题内容的字符串模版格式器。支持用 \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}" /// public string titleFormatter { get { return m_TitleFormatter; } set { m_TitleFormatter = value; } } /// /// 提示框单个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}" /// public string itemFormatter { get { return m_ItemFormatter; } set { m_ItemFormatter = value; } } diff --git a/Assets/XCharts/Runtime/RadarChart.cs b/Assets/XCharts/Runtime/RadarChart.cs index 158a3bd1..7a3f8da1 100644 --- a/Assets/XCharts/Runtime/RadarChart.cs +++ b/Assets/XCharts/Runtime/RadarChart.cs @@ -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];