mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-29 20:58:47 +00:00
[feature][animation] add UnscaledTime for animation #223
This commit is contained in:
@@ -59,6 +59,7 @@
|
|||||||
|
|
||||||
## master
|
## master
|
||||||
|
|
||||||
|
* (2022.10.12) 增加`Animation`的`UnscaledTime`支持设置动画是否受TimeScale的影响 (#223)
|
||||||
* (2022.10.10) 调整文档格式
|
* (2022.10.10) 调整文档格式
|
||||||
* (2022.10.10) 增加`Line`的`SmoothLimit`可控制平滑曲线不同效果
|
* (2022.10.10) 增加`Line`的`SmoothLimit`可控制平滑曲线不同效果
|
||||||
* (2022.10.05) 修复`Serie`隐藏时`Tooltip`还显示信息的问题
|
* (2022.10.05) 修复`Serie`隐藏时`Tooltip`还显示信息的问题
|
||||||
|
|||||||
@@ -21,7 +21,11 @@ namespace XCharts.Editor
|
|||||||
PropertyField(prop, "m_FadeOutDelay");
|
PropertyField(prop, "m_FadeOutDelay");
|
||||||
PropertyField(prop, "m_DataChangeEnable");
|
PropertyField(prop, "m_DataChangeEnable");
|
||||||
PropertyField(prop, "m_DataChangeDuration");
|
PropertyField(prop, "m_DataChangeDuration");
|
||||||
PropertyField(prop, "m_ActualDuration");
|
PropertyField(prop, "m_UnscaledTime");
|
||||||
|
// using(new EditorGUI.DisabledGroupScope(true))
|
||||||
|
// {
|
||||||
|
// PropertyField(prop, "m_ActualDuration");
|
||||||
|
// }
|
||||||
--EditorGUI.indentLevel;
|
--EditorGUI.indentLevel;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ namespace XCharts.Runtime
|
|||||||
[SerializeField] private bool m_DataChangeEnable = true;
|
[SerializeField] private bool m_DataChangeEnable = true;
|
||||||
[SerializeField] private float m_DataChangeDuration = 500;
|
[SerializeField] private float m_DataChangeDuration = 500;
|
||||||
[SerializeField] private float m_ActualDuration;
|
[SerializeField] private float m_ActualDuration;
|
||||||
|
[SerializeField][Since("v3.4.0")] private bool m_UnscaledTime;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 自定义渐入动画延时函数。返回ms值。
|
/// 自定义渐入动画延时函数。返回ms值。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -133,6 +134,11 @@ namespace XCharts.Runtime
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public float dataChangeDuration { get { return m_DataChangeDuration; } set { m_DataChangeDuration = value < 0 ? 0 : value; } }
|
public float dataChangeDuration { get { return m_DataChangeDuration; } set { m_DataChangeDuration = value < 0 ? 0 : value; } }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Animation updates independently of Time.timeScale.
|
||||||
|
/// |动画是否受TimeScaled的影响。默认为 false 受TimeScaled的影响。
|
||||||
|
/// </summary>
|
||||||
|
public bool unscaledTime { get { return m_UnscaledTime; } set { m_UnscaledTime = value; } }
|
||||||
|
/// <summary>
|
||||||
/// 渐入动画完成回调
|
/// 渐入动画完成回调
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Action fadeInFinishCallback { get; set; }
|
public Action fadeInFinishCallback { get; set; }
|
||||||
@@ -464,7 +470,7 @@ namespace XCharts.Runtime
|
|||||||
|
|
||||||
m_ActualDuration = (int) ((Time.time - startTime) * 1000) - fadeInDelay;
|
m_ActualDuration = (int) ((Time.time - startTime) * 1000) - fadeInDelay;
|
||||||
var duration = GetCurrAnimationDuration();
|
var duration = GetCurrAnimationDuration();
|
||||||
var delta = (float) (total / duration * Time.deltaTime);
|
var delta = (float) (total / duration * (m_UnscaledTime ? Time.unscaledDeltaTime : Time.deltaTime));
|
||||||
if (m_FadeOut)
|
if (m_FadeOut)
|
||||||
{
|
{
|
||||||
m_CurrDetailProgress -= delta;
|
m_CurrDetailProgress -= delta;
|
||||||
@@ -522,7 +528,7 @@ namespace XCharts.Runtime
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
var duration = GetCurrAnimationDuration(dataIndex);
|
var duration = GetCurrAnimationDuration(dataIndex);
|
||||||
var delta = (destProgress - startProgress) / duration * Time.deltaTime;
|
var delta = (destProgress - startProgress) / duration * (m_UnscaledTime ? Time.unscaledDeltaTime : Time.deltaTime);
|
||||||
currHig = currHig + (m_FadeOut ? -delta : delta);
|
currHig = currHig + (m_FadeOut ? -delta : delta);
|
||||||
if (m_FadeOut)
|
if (m_FadeOut)
|
||||||
{
|
{
|
||||||
@@ -555,7 +561,7 @@ namespace XCharts.Runtime
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
var duration = GetCurrAnimationDuration();
|
var duration = GetCurrAnimationDuration();
|
||||||
var delta = dest / duration * Time.deltaTime;
|
var delta = dest / duration * (m_UnscaledTime ? Time.unscaledDeltaTime : Time.deltaTime);
|
||||||
if (m_FadeOut)
|
if (m_FadeOut)
|
||||||
{
|
{
|
||||||
m_CurrSymbolProgress -= delta;
|
m_CurrSymbolProgress -= delta;
|
||||||
|
|||||||
@@ -478,11 +478,13 @@ namespace XCharts.Runtime
|
|||||||
var totalAverage = serie.sampleAverage > 0 ? serie.sampleAverage :
|
var totalAverage = serie.sampleAverage > 0 ? serie.sampleAverage :
|
||||||
DataHelper.DataAverage(ref showData, serie.sampleType, serie.minShow, maxCount, rate);
|
DataHelper.DataAverage(ref showData, serie.sampleType, serie.minShow, maxCount, rate);
|
||||||
var dataChanging = false;
|
var dataChanging = false;
|
||||||
|
var animationDuration = serie.animation.GetUpdateAnimationDuration();
|
||||||
|
var unscaledTime = serie.animation.unscaledTime;
|
||||||
|
|
||||||
for (int i = 0; i < maxCount; i += rate)
|
for (int i = 0; i < maxCount; i += rate)
|
||||||
{
|
{
|
||||||
double value = DataHelper.SampleValue(ref showData, serie.sampleType, rate, serie.minShow, maxCount, totalAverage, i,
|
double value = DataHelper.SampleValue(ref showData, serie.sampleType, rate, serie.minShow, maxCount, totalAverage, i,
|
||||||
serie.animation.GetUpdateAnimationDuration(), ref dataChanging, axis);
|
animationDuration, ref dataChanging, axis, unscaledTime);
|
||||||
float pX = dataZoom.context.x + i * scaleWid;
|
float pX = dataZoom.context.x + i * scaleWid;
|
||||||
float dataHig = (float) ((maxValue - minValue) == 0 ? 0 :
|
float dataHig = (float) ((maxValue - minValue) == 0 ? 0 :
|
||||||
(value - minValue) / (maxValue - minValue) * dataZoom.context.height);
|
(value - minValue) / (maxValue - minValue) * dataZoom.context.height);
|
||||||
@@ -567,11 +569,13 @@ namespace XCharts.Runtime
|
|||||||
var totalAverage = serie.sampleAverage > 0 ? serie.sampleAverage :
|
var totalAverage = serie.sampleAverage > 0 ? serie.sampleAverage :
|
||||||
DataHelper.DataAverage(ref showData, serie.sampleType, serie.minShow, maxCount, rate);
|
DataHelper.DataAverage(ref showData, serie.sampleType, serie.minShow, maxCount, rate);
|
||||||
var dataChanging = false;
|
var dataChanging = false;
|
||||||
|
var animationDuration = serie.animation.GetUpdateAnimationDuration();
|
||||||
|
var unscaledTime = serie.animation.unscaledTime;
|
||||||
|
|
||||||
for (int i = 0; i < maxCount; i += rate)
|
for (int i = 0; i < maxCount; i += rate)
|
||||||
{
|
{
|
||||||
double value = DataHelper.SampleValue(ref showData, serie.sampleType, rate, serie.minShow, maxCount, totalAverage, i,
|
double value = DataHelper.SampleValue(ref showData, serie.sampleType, rate, serie.minShow, maxCount, totalAverage, i,
|
||||||
serie.animation.GetUpdateAnimationDuration(), ref dataChanging, axis);
|
animationDuration, ref dataChanging, axis, unscaledTime);
|
||||||
float pY = dataZoom.context.y + i * scaleWid;
|
float pY = dataZoom.context.y + i * scaleWid;
|
||||||
float dataHig = (maxValue - minValue) == 0 ? 0 :
|
float dataHig = (maxValue - minValue) == 0 ? 0 :
|
||||||
(float) ((value - minValue) / (maxValue - minValue) * dataZoom.context.width);
|
(float) ((value - minValue) / (maxValue - minValue) * dataZoom.context.width);
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ namespace XCharts.Runtime
|
|||||||
|
|
||||||
public static double SampleValue(ref List<SerieData> showData, SampleType sampleType, int rate,
|
public static double SampleValue(ref List<SerieData> showData, SampleType sampleType, int rate,
|
||||||
int minCount, int maxCount, double totalAverage, int index, float dataChangeDuration,
|
int minCount, int maxCount, double totalAverage, int index, float dataChangeDuration,
|
||||||
ref bool dataChanging, Axis axis)
|
ref bool dataChanging, Axis axis, bool unscaledTime)
|
||||||
{
|
{
|
||||||
var inverse = axis.inverse;
|
var inverse = axis.inverse;
|
||||||
var minValue = axis.context.minValue;
|
var minValue = axis.context.minValue;
|
||||||
@@ -33,7 +33,7 @@ namespace XCharts.Runtime
|
|||||||
if (showData[index].IsDataChanged())
|
if (showData[index].IsDataChanged())
|
||||||
dataChanging = true;
|
dataChanging = true;
|
||||||
|
|
||||||
return showData[index].GetCurrData(1, dataChangeDuration, inverse, minValue, maxValue);
|
return showData[index].GetCurrData(1, dataChangeDuration, inverse, minValue, maxValue, unscaledTime);
|
||||||
}
|
}
|
||||||
switch (sampleType)
|
switch (sampleType)
|
||||||
{
|
{
|
||||||
@@ -44,7 +44,7 @@ namespace XCharts.Runtime
|
|||||||
for (int i = index; i > index - rate; i--)
|
for (int i = index; i > index - rate; i--)
|
||||||
{
|
{
|
||||||
count++;
|
count++;
|
||||||
total += showData[i].GetCurrData(1, dataChangeDuration, inverse, minValue, maxValue);
|
total += showData[i].GetCurrData(1, dataChangeDuration, inverse, minValue, maxValue, unscaledTime);
|
||||||
if (showData[i].IsDataChanged())
|
if (showData[i].IsDataChanged())
|
||||||
dataChanging = true;
|
dataChanging = true;
|
||||||
}
|
}
|
||||||
@@ -57,7 +57,7 @@ namespace XCharts.Runtime
|
|||||||
double max = double.MinValue;
|
double max = double.MinValue;
|
||||||
for (int i = index; i > index - rate; i--)
|
for (int i = index; i > index - rate; i--)
|
||||||
{
|
{
|
||||||
var value = showData[i].GetCurrData(1, dataChangeDuration, inverse, minValue, maxValue);
|
var value = showData[i].GetCurrData(1, dataChangeDuration, inverse, minValue, maxValue, unscaledTime);
|
||||||
if (value > max)
|
if (value > max)
|
||||||
max = value;
|
max = value;
|
||||||
|
|
||||||
@@ -70,7 +70,7 @@ namespace XCharts.Runtime
|
|||||||
double min = double.MaxValue;
|
double min = double.MaxValue;
|
||||||
for (int i = index; i > index - rate; i--)
|
for (int i = index; i > index - rate; i--)
|
||||||
{
|
{
|
||||||
var value = showData[i].GetCurrData(1, dataChangeDuration, inverse, minValue, maxValue);
|
var value = showData[i].GetCurrData(1, dataChangeDuration, inverse, minValue, maxValue, unscaledTime);
|
||||||
if (value < min)
|
if (value < min)
|
||||||
min = value;
|
min = value;
|
||||||
|
|
||||||
@@ -85,7 +85,7 @@ namespace XCharts.Runtime
|
|||||||
total = 0;
|
total = 0;
|
||||||
for (int i = index; i > index - rate; i--)
|
for (int i = index; i > index - rate; i--)
|
||||||
{
|
{
|
||||||
var value = showData[i].GetCurrData(1, dataChangeDuration, inverse, minValue, maxValue);
|
var value = showData[i].GetCurrData(1, dataChangeDuration, inverse, minValue, maxValue, unscaledTime);
|
||||||
total += value;
|
total += value;
|
||||||
if (value < min)
|
if (value < min)
|
||||||
min = value;
|
min = value;
|
||||||
@@ -104,7 +104,7 @@ namespace XCharts.Runtime
|
|||||||
if (showData[index].IsDataChanged())
|
if (showData[index].IsDataChanged())
|
||||||
dataChanging = true;
|
dataChanging = true;
|
||||||
|
|
||||||
return showData[index].GetCurrData(1, dataChangeDuration, inverse, minValue, maxValue);
|
return showData[index].GetCurrData(1, dataChangeDuration, inverse, minValue, maxValue, unscaledTime);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -221,7 +221,7 @@ namespace XCharts.Runtime
|
|||||||
var state = SerieHelper.GetSerieState(serie, serieData);
|
var state = SerieHelper.GetSerieState(serie, serieData);
|
||||||
var itemStyle = SerieHelper.GetItemStyle(serie, serieData, state);
|
var itemStyle = SerieHelper.GetItemStyle(serie, serieData, state);
|
||||||
var value = axis.IsCategory() ? i : serieData.GetData(0, axis.inverse);
|
var value = axis.IsCategory() ? i : serieData.GetData(0, axis.inverse);
|
||||||
var relativedValue = serieData.GetCurrData(1, dataChangeDuration, relativedAxis.inverse, yMinValue, yMaxValue);
|
var relativedValue = serieData.GetCurrData(1, dataChangeDuration, relativedAxis.inverse, yMinValue, yMaxValue, serie.animation.unscaledTime);
|
||||||
var borderWidth = relativedValue == 0 ? 0 : itemStyle.runtimeBorderWidth;
|
var borderWidth = relativedValue == 0 ? 0 : itemStyle.runtimeBorderWidth;
|
||||||
var borderGap = relativedValue == 0 ? 0 : itemStyle.borderGap;
|
var borderGap = relativedValue == 0 ? 0 : itemStyle.borderGap;
|
||||||
var borderGapAndWidth = borderWidth + borderGap;
|
var borderGapAndWidth = borderWidth + borderGap;
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ namespace XCharts.Runtime
|
|||||||
var highlight = serieData.context.highlight || serie.highlight;
|
var highlight = serieData.context.highlight || serie.highlight;
|
||||||
var itemStyle = SerieHelper.GetItemStyle(serie, serieData);
|
var itemStyle = SerieHelper.GetItemStyle(serie, serieData);
|
||||||
var value = axis.IsCategory() ? i : serieData.GetData(0, axis.inverse);
|
var value = axis.IsCategory() ? i : serieData.GetData(0, axis.inverse);
|
||||||
var relativedValue = serieData.GetCurrData(1, dataChangeDuration, relativedAxis.inverse, yMinValue, yMaxValue);
|
var relativedValue = serieData.GetCurrData(1, dataChangeDuration, relativedAxis.inverse, yMinValue, yMaxValue, serie.animation.unscaledTime);
|
||||||
var borderWidth = relativedValue == 0 ? 0 : itemStyle.runtimeBorderWidth;
|
var borderWidth = relativedValue == 0 ? 0 : itemStyle.runtimeBorderWidth;
|
||||||
|
|
||||||
if (!serieData.interact.TryGetColor(ref areaColor, ref areaToColor, ref interacting))
|
if (!serieData.interact.TryGetColor(ref areaColor, ref areaToColor, ref interacting))
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ namespace XCharts.Runtime
|
|||||||
param.columns.Clear();
|
param.columns.Clear();
|
||||||
|
|
||||||
param.columns.Add(param.marker);
|
param.columns.Add(param.marker);
|
||||||
param.columns.Add(XCSettings.lang.GetCandlestickDimensionName(i-1));
|
param.columns.Add(XCSettings.lang.GetCandlestickDimensionName(i - 1));
|
||||||
param.columns.Add(ChartCached.NumberToStr(param.value, param.numericFormatter));
|
param.columns.Add(ChartCached.NumberToStr(param.value, param.numericFormatter));
|
||||||
|
|
||||||
paramList.Add(param);
|
paramList.Add(param);
|
||||||
@@ -100,6 +100,7 @@ namespace XCharts.Runtime
|
|||||||
|
|
||||||
bool dataChanging = false;
|
bool dataChanging = false;
|
||||||
float dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
float dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
||||||
|
var unscaledTime = serie.animation.unscaledTime;
|
||||||
double yMinValue = yAxis.context.minValue;
|
double yMinValue = yAxis.context.minValue;
|
||||||
double yMaxValue = yAxis.context.maxValue;
|
double yMaxValue = yAxis.context.maxValue;
|
||||||
var isYAxis = false;
|
var isYAxis = false;
|
||||||
@@ -118,10 +119,10 @@ namespace XCharts.Runtime
|
|||||||
var state = SerieHelper.GetSerieState(serie, serieData);
|
var state = SerieHelper.GetSerieState(serie, serieData);
|
||||||
var itemStyle = SerieHelper.GetItemStyle(serie, serieData, state);
|
var itemStyle = SerieHelper.GetItemStyle(serie, serieData, state);
|
||||||
var startDataIndex = serieData.data.Count > 4 ? 1 : 0;
|
var startDataIndex = serieData.data.Count > 4 ? 1 : 0;
|
||||||
var open = serieData.GetCurrData(startDataIndex, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
var open = serieData.GetCurrData(startDataIndex, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue, unscaledTime);
|
||||||
var close = serieData.GetCurrData(startDataIndex + 1, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
var close = serieData.GetCurrData(startDataIndex + 1, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue, unscaledTime);
|
||||||
var lowest = serieData.GetCurrData(startDataIndex + 2, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
var lowest = serieData.GetCurrData(startDataIndex + 2, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue, unscaledTime);
|
||||||
var heighest = serieData.GetCurrData(startDataIndex + 3, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
var heighest = serieData.GetCurrData(startDataIndex + 3, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue, unscaledTime);
|
||||||
var isRise = yAxis.inverse ? close<open : close> open;
|
var isRise = yAxis.inverse ? close<open : close> open;
|
||||||
var borderWidth = open == 0 ? 0f :
|
var borderWidth = open == 0 ? 0f :
|
||||||
(itemStyle.runtimeBorderWidth == 0 ? theme.serie.candlestickBorderWidth :
|
(itemStyle.runtimeBorderWidth == 0 ? theme.serie.candlestickBorderWidth :
|
||||||
|
|||||||
@@ -100,6 +100,7 @@ namespace XCharts.Runtime
|
|||||||
|
|
||||||
bool dataChanging = false;
|
bool dataChanging = false;
|
||||||
float dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
float dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
||||||
|
var unscaledTime = serie.animation.unscaledTime;
|
||||||
double yMinValue = yAxis.context.minValue;
|
double yMinValue = yAxis.context.minValue;
|
||||||
double yMaxValue = yAxis.context.maxValue;
|
double yMaxValue = yAxis.context.maxValue;
|
||||||
var isYAxis = false;
|
var isYAxis = false;
|
||||||
@@ -117,10 +118,10 @@ namespace XCharts.Runtime
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
var startDataIndex = serieData.data.Count > 4 ? 1 : 0;
|
var startDataIndex = serieData.data.Count > 4 ? 1 : 0;
|
||||||
var open = serieData.GetCurrData(startDataIndex, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
var open = serieData.GetCurrData(startDataIndex, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue, unscaledTime);
|
||||||
var close = serieData.GetCurrData(startDataIndex + 1, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
var close = serieData.GetCurrData(startDataIndex + 1, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue, unscaledTime);
|
||||||
var lowest = serieData.GetCurrData(startDataIndex + 2, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
var lowest = serieData.GetCurrData(startDataIndex + 2, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue, unscaledTime);
|
||||||
var heighest = serieData.GetCurrData(startDataIndex + 3, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
var heighest = serieData.GetCurrData(startDataIndex + 3, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue, unscaledTime);
|
||||||
var isRise = yAxis.inverse ? close<open : close> open;
|
var isRise = yAxis.inverse ? close<open : close> open;
|
||||||
var borderWidth = open == 0 ? 0f :
|
var borderWidth = open == 0 ? 0f :
|
||||||
(itemStyle.runtimeBorderWidth == 0 ? theme.serie.candlestickBorderWidth :
|
(itemStyle.runtimeBorderWidth == 0 ? theme.serie.candlestickBorderWidth :
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ namespace XCharts.Runtime
|
|||||||
serie.animation.InitProgress(0, xCount);
|
serie.animation.InitProgress(0, xCount);
|
||||||
var animationIndex = serie.animation.GetCurrIndex();
|
var animationIndex = serie.animation.GetCurrIndex();
|
||||||
var dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
var dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
||||||
|
var unscaledTime = serie.animation.unscaledTime;
|
||||||
var dataChanging = false;
|
var dataChanging = false;
|
||||||
serie.containerIndex = m_SerieGrid.index;
|
serie.containerIndex = m_SerieGrid.index;
|
||||||
serie.containterInstanceId = m_SerieGrid.instanceId;
|
serie.containterInstanceId = m_SerieGrid.instanceId;
|
||||||
@@ -242,7 +243,7 @@ namespace XCharts.Runtime
|
|||||||
var isRectSymbol = symbol.type == SymbolType.Rect;
|
var isRectSymbol = symbol.type == SymbolType.Rect;
|
||||||
SerieHelper.GetSymbolInfo(out borderColor, out symbolBorder, out cornerRadius, serie, serieData, chart.theme, state);
|
SerieHelper.GetSymbolInfo(out borderColor, out symbolBorder, out cornerRadius, serie, serieData, chart.theme, state);
|
||||||
var value = serieData.GetCurrData(dimension, dataChangeDuration, yAxis.inverse,
|
var value = serieData.GetCurrData(dimension, dataChangeDuration, yAxis.inverse,
|
||||||
yAxis.context.minValue, yAxis.context.maxValue);
|
yAxis.context.minValue, yAxis.context.maxValue, unscaledTime);
|
||||||
if (serieData.IsDataChanged()) dataChanging = true;
|
if (serieData.IsDataChanged()) dataChanging = true;
|
||||||
var pos = new Vector3(zeroX + (i + 0.5f) * xWidth,
|
var pos = new Vector3(zeroX + (i + 0.5f) * xWidth,
|
||||||
zeroY + (j + 0.5f) * yWidth);
|
zeroY + (j + 0.5f) * yWidth);
|
||||||
|
|||||||
@@ -287,6 +287,7 @@ namespace XCharts.Runtime
|
|||||||
DataHelper.DataAverage(ref showData, serie.sampleType, serie.minShow, maxCount, rate);
|
DataHelper.DataAverage(ref showData, serie.sampleType, serie.minShow, maxCount, rate);
|
||||||
var dataChanging = false;
|
var dataChanging = false;
|
||||||
var dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
var dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
||||||
|
var unscaledTime = serie.animation.unscaledTime;
|
||||||
|
|
||||||
var interacting = false;
|
var interacting = false;
|
||||||
var lineWidth = LineHelper.GetLineWidth(ref interacting, serie, chart.theme.serie.lineWidth);
|
var lineWidth = LineHelper.GetLineWidth(ref interacting, serie, chart.theme.serie.lineWidth);
|
||||||
@@ -321,7 +322,7 @@ namespace XCharts.Runtime
|
|||||||
var np = Vector3.zero;
|
var np = Vector3.zero;
|
||||||
var xValue = axis.IsCategory() ? i : serieData.GetData(0, axis.inverse);
|
var xValue = axis.IsCategory() ? i : serieData.GetData(0, axis.inverse);
|
||||||
var relativedValue = DataHelper.SampleValue(ref showData, serie.sampleType, rate, serie.minShow,
|
var relativedValue = DataHelper.SampleValue(ref showData, serie.sampleType, rate, serie.minShow,
|
||||||
maxCount, totalAverage, i, dataChangeDuration, ref dataChanging, relativedAxis);
|
maxCount, totalAverage, i, dataChangeDuration, ref dataChanging, relativedAxis, unscaledTime);
|
||||||
|
|
||||||
serieData.context.stackHeight = GetDataPoint(isY, axis, relativedAxis, m_SerieGrid, xValue, relativedValue,
|
serieData.context.stackHeight = GetDataPoint(isY, axis, relativedAxis, m_SerieGrid, xValue, relativedValue,
|
||||||
i, scaleWid, isStack, ref np);
|
i, scaleWid, isStack, ref np);
|
||||||
|
|||||||
@@ -174,6 +174,7 @@ namespace XCharts.Runtime
|
|||||||
DataHelper.DataAverage(ref showData, serie.sampleType, serie.minShow, maxCount, rate);
|
DataHelper.DataAverage(ref showData, serie.sampleType, serie.minShow, maxCount, rate);
|
||||||
var dataChanging = false;
|
var dataChanging = false;
|
||||||
var dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
var dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
||||||
|
var unscaledTime = serie.animation.unscaledTime;
|
||||||
|
|
||||||
var interacting = false;
|
var interacting = false;
|
||||||
var lineWidth = LineHelper.GetLineWidth(ref interacting, serie, chart.theme.serie.lineWidth);
|
var lineWidth = LineHelper.GetLineWidth(ref interacting, serie, chart.theme.serie.lineWidth);
|
||||||
@@ -200,7 +201,7 @@ namespace XCharts.Runtime
|
|||||||
var np = Vector3.zero;
|
var np = Vector3.zero;
|
||||||
var xValue = axis.IsCategory() ? i : serieData.GetData(0, axis.inverse);
|
var xValue = axis.IsCategory() ? i : serieData.GetData(0, axis.inverse);
|
||||||
var relativedValue = DataHelper.SampleValue(ref showData, serie.sampleType, rate, serie.minShow,
|
var relativedValue = DataHelper.SampleValue(ref showData, serie.sampleType, rate, serie.minShow,
|
||||||
maxCount, totalAverage, i, dataChangeDuration, ref dataChanging, relativedAxis);
|
maxCount, totalAverage, i, dataChangeDuration, ref dataChanging, relativedAxis, unscaledTime);
|
||||||
|
|
||||||
serieData.context.stackHeight = GetDataPoint(isY, axis, relativedAxis, m_SerieGrid, xValue, relativedValue,
|
serieData.context.stackHeight = GetDataPoint(isY, axis, relativedAxis, m_SerieGrid, xValue, relativedValue,
|
||||||
i, scaleWid, false, ref np);
|
i, scaleWid, false, ref np);
|
||||||
|
|||||||
@@ -191,6 +191,7 @@ namespace XCharts.Runtime
|
|||||||
sd.context.canShowLabel = false;
|
sd.context.canShowLabel = false;
|
||||||
}
|
}
|
||||||
float dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
float dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
||||||
|
var unscaledTime = serie.animation.unscaledTime;
|
||||||
bool isAllZeroValue = SerieHelper.IsAllZeroValue(serie, 1);
|
bool isAllZeroValue = SerieHelper.IsAllZeroValue(serie, 1);
|
||||||
var dataTotalFilterMinAngle = runtimePieDataTotal;
|
var dataTotalFilterMinAngle = runtimePieDataTotal;
|
||||||
if (isAllZeroValue)
|
if (isAllZeroValue)
|
||||||
@@ -208,7 +209,7 @@ namespace XCharts.Runtime
|
|||||||
for (int n = 0; n < data.Count; n++)
|
for (int n = 0; n < data.Count; n++)
|
||||||
{
|
{
|
||||||
var serieData = data[n];
|
var serieData = data[n];
|
||||||
var value = isAllZeroValue ? zeroReplaceValue : serieData.GetCurrData(1, dataChangeDuration);
|
var value = isAllZeroValue ? zeroReplaceValue : serieData.GetCurrData(1, dataChangeDuration, unscaledTime);
|
||||||
serieData.context.startAngle = startDegree;
|
serieData.context.startAngle = startDegree;
|
||||||
serieData.context.toAngle = startDegree;
|
serieData.context.toAngle = startDegree;
|
||||||
serieData.context.halfAngle = startDegree;
|
serieData.context.halfAngle = startDegree;
|
||||||
|
|||||||
@@ -221,6 +221,7 @@ namespace XCharts.Runtime
|
|||||||
var dataChanging = false;
|
var dataChanging = false;
|
||||||
var interacting = false;
|
var interacting = false;
|
||||||
var dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
var dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
||||||
|
var unscaledTime = serie.animation.unscaledTime;
|
||||||
SerieHelper.GetAllMinMaxData(serie, m_RadarCoord.ceilRate);
|
SerieHelper.GetAllMinMaxData(serie, m_RadarCoord.ceilRate);
|
||||||
Color32 areaColor, areaToColor;
|
Color32 areaColor, areaToColor;
|
||||||
for (int j = 0; j < serie.data.Count; j++)
|
for (int j = 0; j < serie.data.Count; j++)
|
||||||
@@ -246,7 +247,7 @@ namespace XCharts.Runtime
|
|||||||
if (n >= serieData.data.Count) break;
|
if (n >= serieData.data.Count) break;
|
||||||
var min = m_RadarCoord.GetIndicatorMin(n);
|
var min = m_RadarCoord.GetIndicatorMin(n);
|
||||||
var max = m_RadarCoord.GetIndicatorMax(n);
|
var max = m_RadarCoord.GetIndicatorMax(n);
|
||||||
var value = serieData.GetCurrData(n, dataChangeDuration);
|
var value = serieData.GetCurrData(n, dataChangeDuration, unscaledTime);
|
||||||
if (serieData.IsDataChanged()) dataChanging = true;
|
if (serieData.IsDataChanged()) dataChanging = true;
|
||||||
if (max == 0)
|
if (max == 0)
|
||||||
{
|
{
|
||||||
@@ -361,6 +362,7 @@ namespace XCharts.Runtime
|
|||||||
var rate = serie.animation.GetCurrRate();
|
var rate = serie.animation.GetCurrRate();
|
||||||
var dataChanging = false;
|
var dataChanging = false;
|
||||||
var dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
var dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
||||||
|
var unscaledTime = serie.animation.unscaledTime;
|
||||||
var startIndex = GetStartShowIndex(serie);
|
var startIndex = GetStartShowIndex(serie);
|
||||||
var endIndex = GetEndShowIndex(serie);
|
var endIndex = GetEndShowIndex(serie);
|
||||||
SerieHelper.UpdateMinMaxData(serie, 1, m_RadarCoord.ceilRate);
|
SerieHelper.UpdateMinMaxData(serie, 1, m_RadarCoord.ceilRate);
|
||||||
@@ -383,7 +385,7 @@ namespace XCharts.Runtime
|
|||||||
var index = serieData.index;
|
var index = serieData.index;
|
||||||
var p = m_RadarCoord.context.center;
|
var p = m_RadarCoord.context.center;
|
||||||
var max = m_RadarCoord.GetIndicatorMax(index);
|
var max = m_RadarCoord.GetIndicatorMax(index);
|
||||||
var value = serieData.GetCurrData(1, dataChangeDuration);
|
var value = serieData.GetCurrData(1, dataChangeDuration, unscaledTime);
|
||||||
if (serieData.IsDataChanged()) dataChanging = true;
|
if (serieData.IsDataChanged()) dataChanging = true;
|
||||||
if (max == 0)
|
if (max == 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -182,6 +182,7 @@ namespace XCharts.Runtime
|
|||||||
serie.animation.InitProgress(serie.startAngle, serie.startAngle + 360);
|
serie.animation.InitProgress(serie.startAngle, serie.startAngle + 360);
|
||||||
SerieHelper.UpdateCenter(serie, chart.chartPosition, chart.chartWidth, chart.chartHeight);
|
SerieHelper.UpdateCenter(serie, chart.chartPosition, chart.chartWidth, chart.chartHeight);
|
||||||
var dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
var dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
||||||
|
var unscaledTime = serie.animation.unscaledTime;
|
||||||
var ringWidth = serie.context.outsideRadius - serie.context.insideRadius;
|
var ringWidth = serie.context.outsideRadius - serie.context.insideRadius;
|
||||||
var dataChanging = false;
|
var dataChanging = false;
|
||||||
for (int j = 0; j < data.Count; j++)
|
for (int j = 0; j < data.Count; j++)
|
||||||
@@ -189,7 +190,7 @@ namespace XCharts.Runtime
|
|||||||
var serieData = data[j];
|
var serieData = data[j];
|
||||||
if (!serieData.show) continue;
|
if (!serieData.show) continue;
|
||||||
if (serieData.IsDataChanged()) dataChanging = true;
|
if (serieData.IsDataChanged()) dataChanging = true;
|
||||||
var value = serieData.GetFirstData(dataChangeDuration);
|
var value = serieData.GetFirstData(unscaledTime, dataChangeDuration);
|
||||||
var max = serieData.GetLastData();
|
var max = serieData.GetLastData();
|
||||||
var degree = (float) (360 * value / max);
|
var degree = (float) (360 * value / max);
|
||||||
var startDegree = GetStartAngle(serie);
|
var startDegree = GetStartAngle(serie);
|
||||||
|
|||||||
@@ -135,6 +135,7 @@ namespace XCharts.Runtime
|
|||||||
serie.animation.InitProgress(0, 1);
|
serie.animation.InitProgress(0, 1);
|
||||||
var rate = serie.animation.GetCurrRate();
|
var rate = serie.animation.GetCurrRate();
|
||||||
var dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
var dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
||||||
|
var unscaledTime = serie.animation.unscaledTime;
|
||||||
var dataChanging = false;
|
var dataChanging = false;
|
||||||
var interacting = false;
|
var interacting = false;
|
||||||
var dataList = serie.GetDataList(xDataZoom);
|
var dataList = serie.GetDataList(xDataZoom);
|
||||||
@@ -157,8 +158,8 @@ namespace XCharts.Runtime
|
|||||||
|
|
||||||
SerieHelper.GetItemColor(out color, out toColor, out emptyColor, serie, serieData, chart.theme, colorIndex, state);
|
SerieHelper.GetItemColor(out color, out toColor, out emptyColor, serie, serieData, chart.theme, colorIndex, state);
|
||||||
SerieHelper.GetSymbolInfo(out borderColor, out symbolBorder, out cornerRadius, serie, serieData, chart.theme, state);
|
SerieHelper.GetSymbolInfo(out borderColor, out symbolBorder, out cornerRadius, serie, serieData, chart.theme, state);
|
||||||
double xValue = serieData.GetCurrData(0, dataChangeDuration, xAxis.inverse);
|
double xValue = serieData.GetCurrData(0, dataChangeDuration, unscaledTime, xAxis.inverse);
|
||||||
double yValue = serieData.GetCurrData(1, dataChangeDuration, yAxis.inverse);
|
double yValue = serieData.GetCurrData(1, dataChangeDuration, unscaledTime, yAxis.inverse);
|
||||||
|
|
||||||
if (serieData.IsDataChanged())
|
if (serieData.IsDataChanged())
|
||||||
dataChanging = true;
|
dataChanging = true;
|
||||||
@@ -238,6 +239,7 @@ namespace XCharts.Runtime
|
|||||||
|
|
||||||
var rate = serie.animation.GetCurrRate();
|
var rate = serie.animation.GetCurrRate();
|
||||||
var dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
var dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
||||||
|
var unscaledTime = serie.animation.unscaledTime;
|
||||||
var dataChanging = false;
|
var dataChanging = false;
|
||||||
var dataList = serie.GetDataList(xDataZoom);
|
var dataList = serie.GetDataList(xDataZoom);
|
||||||
var isEffectScatter = serie is EffectScatter;
|
var isEffectScatter = serie is EffectScatter;
|
||||||
@@ -263,7 +265,7 @@ namespace XCharts.Runtime
|
|||||||
dataChanging = true;
|
dataChanging = true;
|
||||||
|
|
||||||
var pos = Vector3.zero;
|
var pos = Vector3.zero;
|
||||||
var xValue = serieData.GetCurrData(0, dataChangeDuration, axis.inverse);
|
var xValue = serieData.GetCurrData(0, dataChangeDuration, unscaledTime, axis.inverse);
|
||||||
|
|
||||||
if (axis.orient == Orient.Horizonal)
|
if (axis.orient == Orient.Horizonal)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -11,9 +11,10 @@ namespace XCharts.Runtime
|
|||||||
{
|
{
|
||||||
base.Update();
|
base.Update();
|
||||||
var symbolSize = serie.symbol.GetSize(null, chart.theme.serie.scatterSymbolSize);
|
var symbolSize = serie.symbol.GetSize(null, chart.theme.serie.scatterSymbolSize);
|
||||||
|
var deltaTime = serie.animation.unscaledTime? Time.unscaledDeltaTime : Time.deltaTime;
|
||||||
for (int i = 0; i < serie.symbol.animationSize.Count; ++i)
|
for (int i = 0; i < serie.symbol.animationSize.Count; ++i)
|
||||||
{
|
{
|
||||||
serie.symbol.animationSize[i] += m_EffectScatterSpeed * Time.deltaTime;
|
serie.symbol.animationSize[i] += m_EffectScatterSpeed * deltaTime;
|
||||||
if (serie.symbol.animationSize[i] > symbolSize)
|
if (serie.symbol.animationSize[i] > symbolSize)
|
||||||
{
|
{
|
||||||
serie.symbol.animationSize[i] = i * 5;
|
serie.symbol.animationSize[i] = i * 5;
|
||||||
|
|||||||
@@ -247,7 +247,7 @@ namespace XCharts.Runtime
|
|||||||
[SerializeField] private float m_SampleAverage = 0;
|
[SerializeField] private float m_SampleAverage = 0;
|
||||||
|
|
||||||
[SerializeField] private LineType m_LineType = LineType.Normal;
|
[SerializeField] private LineType m_LineType = LineType.Normal;
|
||||||
[SerializeField][Since("v3.3.1")] private bool m_SmoothLimit = true;
|
[SerializeField][Since("v3.4.0")] private bool m_SmoothLimit = true;
|
||||||
[SerializeField] private BarType m_BarType = BarType.Normal;
|
[SerializeField] private BarType m_BarType = BarType.Normal;
|
||||||
[SerializeField] private bool m_BarPercentStack = false;
|
[SerializeField] private bool m_BarPercentStack = false;
|
||||||
[SerializeField] private float m_BarWidth = 0;
|
[SerializeField] private float m_BarWidth = 0;
|
||||||
@@ -1136,10 +1136,11 @@ namespace XCharts.Runtime
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
var duration = animation.GetUpdateAnimationDuration();
|
var duration = animation.GetUpdateAnimationDuration();
|
||||||
|
var unscaledTime = animation.unscaledTime;
|
||||||
foreach (var sdata in data)
|
foreach (var sdata in data)
|
||||||
{
|
{
|
||||||
if (sdata.show && !IsIgnoreValue(sdata.data[1]))
|
if (sdata.show && !IsIgnoreValue(sdata.data[1]))
|
||||||
total += sdata.GetCurrData(1, duration);
|
total += sdata.GetCurrData(1, duration, unscaledTime);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return total;
|
return total;
|
||||||
@@ -1459,7 +1460,7 @@ namespace XCharts.Runtime
|
|||||||
var serieData = GetDataList(dataZoom);
|
var serieData = GetDataList(dataZoom);
|
||||||
if (index < serieData.Count)
|
if (index < serieData.Count)
|
||||||
{
|
{
|
||||||
var value = serieData[index].GetCurrData(1, animation.GetUpdateAnimationDuration());
|
var value = serieData[index].GetCurrData(1, animation.GetUpdateAnimationDuration(), animation.unscaledTime);
|
||||||
if (showAsPositiveNumber)
|
if (showAsPositiveNumber)
|
||||||
value = Math.Abs(value);
|
value = Math.Abs(value);
|
||||||
return value;
|
return value;
|
||||||
@@ -1622,7 +1623,8 @@ namespace XCharts.Runtime
|
|||||||
{
|
{
|
||||||
var animationOpen = animation.enable;
|
var animationOpen = animation.enable;
|
||||||
var animationDuration = animation.GetUpdateAnimationDuration();
|
var animationDuration = animation.GetUpdateAnimationDuration();
|
||||||
var flag = m_Data[index].UpdateData(dimension, value, animationOpen, animationDuration);
|
var unscaledTime = animation.unscaledTime;
|
||||||
|
var flag = m_Data[index].UpdateData(dimension, value, animationOpen, unscaledTime, animationDuration);
|
||||||
if (flag)
|
if (flag)
|
||||||
{
|
{
|
||||||
SetVerticesDirty();
|
SetVerticesDirty();
|
||||||
@@ -1648,8 +1650,9 @@ namespace XCharts.Runtime
|
|||||||
var serieData = m_Data[index];
|
var serieData = m_Data[index];
|
||||||
var animationOpen = animation.enable;
|
var animationOpen = animation.enable;
|
||||||
var animationDuration = animation.GetUpdateAnimationDuration();
|
var animationDuration = animation.GetUpdateAnimationDuration();
|
||||||
|
var unscaledTime = animation.unscaledTime;
|
||||||
for (int i = 0; i < values.Count; i++)
|
for (int i = 0; i < values.Count; i++)
|
||||||
serieData.UpdateData(i, values[i], animationOpen, animationDuration);
|
serieData.UpdateData(i, values[i], animationOpen, unscaledTime, animationDuration);
|
||||||
SetVerticesDirty();
|
SetVerticesDirty();
|
||||||
dataDirty = true;
|
dataDirty = true;
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -381,9 +381,9 @@ namespace XCharts.Runtime
|
|||||||
else return 0;
|
else return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double GetFirstData(float animationDuration = 500f)
|
public double GetFirstData(bool unscaledTime, float animationDuration = 500f)
|
||||||
{
|
{
|
||||||
if (m_Data.Count > 0) return GetCurrData(0, animationDuration);
|
if (m_Data.Count > 0) return GetCurrData(0, animationDuration, unscaledTime);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -393,23 +393,23 @@ namespace XCharts.Runtime
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double GetCurrData(int index, float animationDuration = 500f, bool inverse = false)
|
public double GetCurrData(int index, float animationDuration = 500f, bool unscaledTime = false, bool inverse = false)
|
||||||
{
|
{
|
||||||
return GetCurrData(index, animationDuration, inverse, 0, 0);
|
return GetCurrData(index, animationDuration, inverse, 0, 0, unscaledTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
public double GetCurrData(int index, float animationDuration, bool inverse, double min, double max)
|
public double GetCurrData(int index, float animationDuration, bool inverse, double min, double max, bool unscaledTime)
|
||||||
{
|
{
|
||||||
if (index < m_DataUpdateFlag.Count && m_DataUpdateFlag[index] && animationDuration > 0)
|
if (index < m_DataUpdateFlag.Count && m_DataUpdateFlag[index] && animationDuration > 0)
|
||||||
{
|
{
|
||||||
var time = Time.time - m_DataUpdateTime[index];
|
var time = (unscaledTime ? Time.unscaledTime : Time.time) - m_DataUpdateTime[index];
|
||||||
var total = animationDuration / 1000;
|
var total = animationDuration / 1000;
|
||||||
|
|
||||||
var rate = time / total;
|
var rate = time / total;
|
||||||
if (rate > 1) rate = 1;
|
if (rate > 1) rate = 1;
|
||||||
if (rate < 1)
|
if (rate < 1)
|
||||||
{
|
{
|
||||||
CheckLastData();
|
CheckLastData(unscaledTime);
|
||||||
var curr = MathUtil.Lerp(GetPreviousData(index), GetData(index), rate);
|
var curr = MathUtil.Lerp(GetPreviousData(index), GetData(index), rate);
|
||||||
if (min != 0 || max != 0)
|
if (min != 0 || max != 0)
|
||||||
{
|
{
|
||||||
@@ -503,14 +503,14 @@ namespace XCharts.Runtime
|
|||||||
return total;
|
return total;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool UpdateData(int dimension, double value, bool updateAnimation, float animationDuration = 500f)
|
public bool UpdateData(int dimension, double value, bool updateAnimation, bool unscaledTime, float animationDuration = 500f)
|
||||||
{
|
{
|
||||||
if (dimension >= 0 && dimension < data.Count)
|
if (dimension >= 0 && dimension < data.Count)
|
||||||
{
|
{
|
||||||
CheckLastData();
|
CheckLastData(unscaledTime);
|
||||||
m_PreviousData[dimension] = GetCurrData(dimension, animationDuration);
|
m_PreviousData[dimension] = GetCurrData(dimension, animationDuration, unscaledTime);
|
||||||
//m_PreviousData[dimension] = data[dimension];;
|
//m_PreviousData[dimension] = data[dimension];;
|
||||||
m_DataUpdateTime[dimension] = Time.time;
|
m_DataUpdateTime[dimension] = (unscaledTime ? Time.unscaledTime : Time.time);
|
||||||
m_DataUpdateFlag[dimension] = updateAnimation;
|
m_DataUpdateFlag[dimension] = updateAnimation;
|
||||||
data[dimension] = value;
|
data[dimension] = value;
|
||||||
return true;
|
return true;
|
||||||
@@ -528,7 +528,7 @@ namespace XCharts.Runtime
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CheckLastData()
|
private void CheckLastData(bool unscaledTime)
|
||||||
{
|
{
|
||||||
if (m_PreviousData.Count != m_Data.Count)
|
if (m_PreviousData.Count != m_Data.Count)
|
||||||
{
|
{
|
||||||
@@ -538,7 +538,7 @@ namespace XCharts.Runtime
|
|||||||
for (int i = 0; i < m_Data.Count; i++)
|
for (int i = 0; i < m_Data.Count; i++)
|
||||||
{
|
{
|
||||||
m_PreviousData.Add(m_Data[i]);
|
m_PreviousData.Add(m_Data[i]);
|
||||||
m_DataUpdateTime.Add(Time.time);
|
m_DataUpdateTime.Add((unscaledTime ? Time.unscaledTime : Time.time));
|
||||||
m_DataUpdateFlag.Add(false);
|
m_DataUpdateFlag.Add(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -368,6 +368,7 @@ namespace XCharts.Runtime
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
var dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
var dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
||||||
|
var unscaledTime = serie.animation.unscaledTime;
|
||||||
var needCheck = serie.context.dataIndexs.Count > 0;
|
var needCheck = serie.context.dataIndexs.Count > 0;
|
||||||
foreach (var serieData in serie.data)
|
foreach (var serieData in serie.data)
|
||||||
{
|
{
|
||||||
@@ -395,7 +396,7 @@ namespace XCharts.Runtime
|
|||||||
{
|
{
|
||||||
if (i >= serieData.context.dataPoints.Count) continue;
|
if (i >= serieData.context.dataPoints.Count) continue;
|
||||||
var labelObject = serieData.context.dataLabels[i];
|
var labelObject = serieData.context.dataLabels[i];
|
||||||
var value = serieData.GetCurrData(i, dataChangeDuration);
|
var value = serieData.GetCurrData(i, dataChangeDuration, unscaledTime);
|
||||||
var content = string.IsNullOrEmpty(currLabel.formatter) ?
|
var content = string.IsNullOrEmpty(currLabel.formatter) ?
|
||||||
ChartCached.NumberToStr(value, currLabel.numericFormatter) :
|
ChartCached.NumberToStr(value, currLabel.numericFormatter) :
|
||||||
SerieLabelHelper.GetFormatterContent(serie, serieData, value, total,
|
SerieLabelHelper.GetFormatterContent(serie, serieData, value, total,
|
||||||
@@ -415,7 +416,7 @@ namespace XCharts.Runtime
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var value = serieData.GetCurrData(defaultDimension, dataChangeDuration);
|
var value = serieData.GetCurrData(defaultDimension, dataChangeDuration, unscaledTime);
|
||||||
var total = serie.GetDataTotal(defaultDimension, serieData);
|
var total = serie.GetDataTotal(defaultDimension, serieData);
|
||||||
var color = chart.GetItemColor(serie, serieData);
|
var color = chart.GetItemColor(serie, serieData);
|
||||||
var content = string.IsNullOrEmpty(currLabel.formatter) ?
|
var content = string.IsNullOrEmpty(currLabel.formatter) ?
|
||||||
|
|||||||
@@ -339,6 +339,7 @@ namespace XCharts.Runtime
|
|||||||
(!isPolar && serie.yAxisIndex != axisIndex) ||
|
(!isPolar && serie.yAxisIndex != axisIndex) ||
|
||||||
!serie.show) continue;
|
!serie.show) continue;
|
||||||
var updateDuration = serie.animation.enable?serie.animation.dataChangeDuration : 0;
|
var updateDuration = serie.animation.enable?serie.animation.dataChangeDuration : 0;
|
||||||
|
var unscaledTime = serie.animation.unscaledTime;
|
||||||
if (isPercentStack && SeriesHelper.IsPercentStack<Bar>(series, serie.serieName))
|
if (isPercentStack && SeriesHelper.IsPercentStack<Bar>(series, serie.serieName))
|
||||||
{
|
{
|
||||||
if (100 > max) max = 100;
|
if (100 > max) max = 100;
|
||||||
@@ -363,7 +364,7 @@ namespace XCharts.Runtime
|
|||||||
foreach (var data in showData)
|
foreach (var data in showData)
|
||||||
{
|
{
|
||||||
var currData = performanceMode? data.GetData(yValue?1 : 0, inverse):
|
var currData = performanceMode? data.GetData(yValue?1 : 0, inverse):
|
||||||
data.GetCurrData(yValue ? 1 : 0, updateDuration, inverse);
|
data.GetCurrData(yValue ? 1 : 0, updateDuration, unscaledTime, inverse);
|
||||||
if (!serie.IsIgnoreValue(currData))
|
if (!serie.IsIgnoreValue(currData))
|
||||||
{
|
{
|
||||||
if (currData > max) max = currData;
|
if (currData > max) max = currData;
|
||||||
|
|||||||
Reference in New Issue
Block a user