diff --git a/CHANGELOG-EN.md b/CHANGELOG-EN.md index 1f1033e8..c60a5f34 100644 --- a/CHANGELOG-EN.md +++ b/CHANGELOG-EN.md @@ -1,6 +1,7 @@ # 更新日志 +* (2020.12.18) fixed an issue where updating data when `Animation` was not enabled caused the chart to keep refreshing * (2020.12.01) fixed an issue where a newly created chart on `Unity2020` could not be drawn properly * (2020.11.22) Release `v1.6.2` version * (2020.11.22) Fixed an issue where `LineChart` draws an exception when the data is too dense #99 diff --git a/CHANGELOG.md b/CHANGELOG.md index c3e69c1c..3eac657b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # 更新日志 +* (2020.12.18) 修复`Animation`不启用时更新数据会导致图表一直刷新的问题 * (2020.12.01) 修复`Unity2020`上新创建的图表无法正常绘制的问题 * (2020.11.22) 发布`v1.6.2`版本 * (2020.11.22) 修复`LineChart`在数据过于密集时折线绘制异常的问题 #99 diff --git a/Runtime/API/RingChart_API.cs b/Runtime/API/RingChart_API.cs index 15786f36..245dd802 100644 --- a/Runtime/API/RingChart_API.cs +++ b/Runtime/API/RingChart_API.cs @@ -24,11 +24,7 @@ namespace XCharts var serie = m_Series.GetSerie(serieIndex); if (serie != null) { - var serieData = serie.GetSerieData(dataIndex); - if (serieData != null) - { - return serieData.UpdateData(1, value, serie.animation.GetUpdateAnimationDuration()); - } + return serie.UpdateData(dataIndex, 1, value); } return false; } @@ -45,10 +41,9 @@ namespace XCharts if (serie != null) { var flag = true; - foreach (var serieData in serie.data) + for (int i = 0; i < serie.dataCount; i++) { - if (!serieData.UpdateData(1, value, serie.animation.GetUpdateAnimationDuration())) - flag = false; + if (serie.UpdateData(i, 1, value)) flag = false; } return flag; } diff --git a/Runtime/Component/Main/Serie.cs b/Runtime/Component/Main/Serie.cs index 08264212..1b94ab18 100644 --- a/Runtime/Component/Main/Serie.cs +++ b/Runtime/Component/Main/Serie.cs @@ -1095,7 +1095,7 @@ namespace XCharts { if (sdata.show) total += sdata.GetCurrData(1, animation.GetUpdateAnimationDuration()); - //total += sdata.GetData(1); + //total += sdata.GetData(1); } return total; } @@ -1504,7 +1504,9 @@ namespace XCharts { if (index >= 0 && index < m_Data.Count) { - var flag = m_Data[index].UpdateData(dimension, value, animation.GetUpdateAnimationDuration()); + var animationOpen = animation.enable; + var animationDuration = animation.GetUpdateAnimationDuration(); + var flag = m_Data[index].UpdateData(dimension, value, animationOpen, animationDuration); if (flag) SetVerticesDirty(); return flag; } @@ -1524,8 +1526,10 @@ namespace XCharts if (index >= 0 && index < m_Data.Count && values != null) { var serieData = m_Data[index]; + var animationOpen = animation.enable; + var animationDuration = animation.GetUpdateAnimationDuration(); for (int i = 0; i < values.Count; i++) - serieData.UpdateData(i, values[i], animation.GetUpdateAnimationDuration()); + serieData.UpdateData(i, values[i], animationOpen, animationDuration); SetVerticesDirty(); return true; } diff --git a/Runtime/Component/Sub/SerieData.cs b/Runtime/Component/Sub/SerieData.cs index bfb93851..958978af 100644 --- a/Runtime/Component/Sub/SerieData.cs +++ b/Runtime/Component/Sub/SerieData.cs @@ -280,7 +280,7 @@ namespace XCharts } } - public bool UpdateData(int dimension, float value, float animationDuration = 500f) + public bool UpdateData(int dimension, float value, bool updateAnimation, float animationDuration = 500f) { if (dimension >= 0 && dimension < data.Count) { @@ -288,7 +288,7 @@ namespace XCharts m_PreviousData[dimension] = GetCurrData(dimension, animationDuration); //m_PreviousData[dimension] = data[dimension];; m_DataUpdateTime[dimension] = Time.time; - m_DataUpdateFlag[dimension] = true; + m_DataUpdateFlag[dimension] = updateAnimation; data[dimension] = value; return true; }