修复Animation不启用时更新数据会导致图表一直刷新的问题

This commit is contained in:
monitor1394
2020-12-18 19:06:34 +08:00
parent ea1bb9fd09
commit d6b034b4dd
5 changed files with 14 additions and 13 deletions

View File

@@ -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.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) Release `v1.6.2` version
* (2020.11.22) Fixed an issue where `LineChart` draws an exception when the data is too dense #99 * (2020.11.22) Fixed an issue where `LineChart` draws an exception when the data is too dense #99

View File

@@ -1,6 +1,7 @@
# 更新日志 # 更新日志
* (2020.12.18) 修复`Animation`不启用时更新数据会导致图表一直刷新的问题
* (2020.12.01) 修复`Unity2020`上新创建的图表无法正常绘制的问题 * (2020.12.01) 修复`Unity2020`上新创建的图表无法正常绘制的问题
* (2020.11.22) 发布`v1.6.2`版本 * (2020.11.22) 发布`v1.6.2`版本
* (2020.11.22) 修复`LineChart`在数据过于密集时折线绘制异常的问题 #99 * (2020.11.22) 修复`LineChart`在数据过于密集时折线绘制异常的问题 #99

View File

@@ -24,11 +24,7 @@ namespace XCharts
var serie = m_Series.GetSerie(serieIndex); var serie = m_Series.GetSerie(serieIndex);
if (serie != null) if (serie != null)
{ {
var serieData = serie.GetSerieData(dataIndex); return serie.UpdateData(dataIndex, 1, value);
if (serieData != null)
{
return serieData.UpdateData(1, value, serie.animation.GetUpdateAnimationDuration());
}
} }
return false; return false;
} }
@@ -45,10 +41,9 @@ namespace XCharts
if (serie != null) if (serie != null)
{ {
var flag = true; 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())) if (serie.UpdateData(i, 1, value)) flag = false;
flag = false;
} }
return flag; return flag;
} }

View File

@@ -1095,7 +1095,7 @@ namespace XCharts
{ {
if (sdata.show) if (sdata.show)
total += sdata.GetCurrData(1, animation.GetUpdateAnimationDuration()); total += sdata.GetCurrData(1, animation.GetUpdateAnimationDuration());
//total += sdata.GetData(1); //total += sdata.GetData(1);
} }
return total; return total;
} }
@@ -1504,7 +1504,9 @@ namespace XCharts
{ {
if (index >= 0 && index < m_Data.Count) 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(); if (flag) SetVerticesDirty();
return flag; return flag;
} }
@@ -1524,8 +1526,10 @@ namespace XCharts
if (index >= 0 && index < m_Data.Count && values != null) if (index >= 0 && index < m_Data.Count && values != null)
{ {
var serieData = m_Data[index]; var serieData = m_Data[index];
var animationOpen = animation.enable;
var animationDuration = animation.GetUpdateAnimationDuration();
for (int i = 0; i < values.Count; i++) for (int i = 0; i < values.Count; i++)
serieData.UpdateData(i, values[i], animation.GetUpdateAnimationDuration()); serieData.UpdateData(i, values[i], animationOpen, animationDuration);
SetVerticesDirty(); SetVerticesDirty();
return true; return true;
} }

View File

@@ -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) if (dimension >= 0 && dimension < data.Count)
{ {
@@ -288,7 +288,7 @@ namespace XCharts
m_PreviousData[dimension] = GetCurrData(dimension, animationDuration); m_PreviousData[dimension] = GetCurrData(dimension, animationDuration);
//m_PreviousData[dimension] = data[dimension];; //m_PreviousData[dimension] = data[dimension];;
m_DataUpdateTime[dimension] = Time.time; m_DataUpdateTime[dimension] = Time.time;
m_DataUpdateFlag[dimension] = true; m_DataUpdateFlag[dimension] = updateAnimation;
data[dimension] = value; data[dimension] = value;
return true; return true;
} }