增加AnimationInteraction交互动画配置支持

This commit is contained in:
monitor1394
2023-07-17 22:15:54 +08:00
parent 58d6d52747
commit 816e26f517
22 changed files with 113 additions and 95 deletions

View File

@@ -62,6 +62,7 @@ namespace XCharts.Editor
PropertyField(prop, "m_Duration");
PropertyField(prop, "m_WidthRate");
PropertyField(prop, "m_RadiusRate");
PropertyField(prop, "m_Offset");
--EditorGUI.indentLevel;
}
}

View File

@@ -148,9 +148,6 @@ namespace XCharts.Editor
PropertyField(prop, "m_LineWidth");
PropertyField(prop, "m_LineSymbolSize");
PropertyField(prop, "m_ScatterSymbolSize");
PropertyField(prop, "m_SelectedRate");
PropertyField(prop, "m_PieTooltipExtraRadius");
PropertyField(prop, "m_PieSelectedOffset");
PropertyField(prop, "m_CandlestickColor");
PropertyField(prop, "m_CandlestickColor0");
PropertyField(prop, "m_CandlestickBorderColor");

View File

@@ -45,8 +45,6 @@ MonoBehaviour:
m_LineSegmentDistance: 3
m_CicleSmoothness: 2
m_VisualMapTriangeLen: 20
m_PieTooltipExtraRadius: 8
m_PieSelectedOffset: 8
m_CustomThemes:
- {fileID: 11400000, guid: 289d2fc7f4ce24f73b9ed8ec52639f72, type: 2}
- {fileID: 11400000, guid: e1dc23a10de1e4c5dbfbaf74c4dfd218, type: 2}

View File

@@ -188,9 +188,6 @@ MonoBehaviour:
m_LineWidth: 1.8
m_LineSymbolSize: 5
m_ScatterSymbolSize: 20
m_PieTooltipExtraRadius: 8
m_SelectedRate: 1.3
m_PieSelectedOffset: 8
m_CandlestickColor:
serializedVersion: 2
rgba: 4283846390

View File

@@ -145,9 +145,6 @@ MonoBehaviour:
m_LineWidth: 1.8
m_LineSymbolSize: 5
m_ScatterSymbolSize: 20
m_PieTooltipExtraRadius: 8
m_SelectedRate: 1.3
m_PieSelectedOffset: 8
m_CandlestickColor:
serializedVersion: 2
rgba: 4283716843

View File

@@ -413,7 +413,8 @@ namespace XCharts.Runtime
public class AnimationInteraction : AnimationInfo
{
[SerializeField][Since("v3.8.0")] private float m_WidthRate = 1.3f;
[SerializeField][Since("v3.8.0")] private float m_RadiusRate = 1.3f;
[SerializeField][Since("v3.8.0")] private float m_RadiusRate = 1.1f;
[SerializeField][Since("v3.8.0")] private float m_Offset = 8f;
/// <summary>
/// the size rate of the width.
@@ -425,5 +426,16 @@ namespace XCharts.Runtime
/// |半径的放大倍率。
/// </summary>
public float radiusRate { get { return m_RadiusRate; } set { m_RadiusRate = value; } }
/// <summary>
/// the offset when interaction. Such as the offset of the pie chart when the sector is selected.
/// |交互时的偏移。如饼图的扇形选中时的偏移。
/// </summary>
public float offset { get { return m_Offset; } set { m_Offset = value; } }
public float GetRadius(float radius)
{
return radius * radiusRate;
}
}
}

View File

@@ -538,6 +538,14 @@ namespace XCharts.Runtime
return 0;
}
public float GetInteractionRadius(float radius){
if (m_Enable && m_Interaction.enable)
return m_Interaction.GetRadius(radius);
else
return radius;
}
public bool HasFadeOut()
{
return enable && m_FadeOut.context.end;

View File

@@ -15,6 +15,15 @@ namespace XCharts.Runtime
private bool m_ValueEnable = false;
internal float targetVaue { get { return m_TargetValue; } }
internal float previousValue { get { return m_PreviousValue; } }
internal bool valueEnable { get { return m_ValueEnable; } }
internal bool updateFlag { get { return m_UpdateFlag; } }
public override string ToString()
{
return string.Format("m_PreviousValue:{0},m_TargetValue:{1},m_UpdateTime:{2},m_UpdateFlag:{3},m_ValueEnable:{4}",
m_PreviousValue, m_TargetValue, m_UpdateTime, m_UpdateFlag, m_ValueEnable);
}
public void SetValue(ref bool needInteract, float size, bool highlight, float rate = 1.3f)
{
@@ -33,6 +42,10 @@ namespace XCharts.Runtime
m_PreviousValue = m_TargetValue;
m_TargetValue = size;
}
else if (m_UpdateFlag)
{
needInteract = true;
}
}
public void SetColor(ref bool needInteract, Color32 color)
@@ -49,6 +62,10 @@ namespace XCharts.Runtime
}
m_TargetColor = color;
}
else if (m_UpdateFlag)
{
needInteract = true;
}
}
public void SetColor(ref bool needInteract, Color32 color, Color32 toColor)
{
@@ -186,6 +203,7 @@ namespace XCharts.Runtime
public void Reset()
{
Debug.LogError("Reset:"+this);
m_UpdateFlag = false;
m_ValueEnable = false;
m_PreviousValue = float.NaN;

View File

@@ -161,6 +161,7 @@ namespace XCharts.Runtime
}
if (!serieData.show) return;
var serieLabel = SerieHelper.GetSerieLabel(serie, serieData);
if (serieLabel == null) return;
var isOutside = serieLabel.position == LabelStyle.Position.Outside ||
serieLabel.position == LabelStyle.Position.Default;
if (!serieLabel.show) return;
@@ -187,11 +188,11 @@ namespace XCharts.Runtime
var angle = ChartHelper.GetAngle360(Vector2.up, newPos - serie.context.center);
if (angle >= 180 && angle <= 270)
{
serieData.context.labelPosition = new Vector3(isLeft?(++lastX): (--lastX), y1);
serieData.context.labelPosition = new Vector3(isLeft ? (++lastX) : (--lastX), y1);
}
else if (angle < 180 && angle >= 90)
{
serieData.context.labelPosition = new Vector3(isLeft?(++lastX): (--lastX), y1);
serieData.context.labelPosition = new Vector3(isLeft ? (++lastX) : (--lastX), y1);
}
else
{

View File

@@ -60,8 +60,6 @@ namespace XCharts.Runtime
[SerializeField][Range(1f, 20)] protected float m_LineSegmentDistance = 3f;
[SerializeField][Range(1, 10)] protected float m_CicleSmoothness = 2f;
[SerializeField][Range(10, 50)] protected float m_VisualMapTriangeLen = 20f;
[SerializeField][Range(1, 20)] protected float m_PieTooltipExtraRadius = 8f;
[SerializeField][Range(1, 20)] protected float m_PieSelectedOffset = 8f;
[SerializeField] protected List<Theme> m_CustomThemes = new List<Theme>();
public static Lang lang { get { return Instance.m_Lang; } }
@@ -112,8 +110,6 @@ namespace XCharts.Runtime
public static float lineSegmentDistance { get { return Instance.m_LineSegmentDistance; } }
public static float cicleSmoothness { get { return Instance.m_CicleSmoothness; } }
public static float visualMapTriangeLen { get { return Instance.m_VisualMapTriangeLen; } }
public static float pieTooltipExtraRadius { get { return Instance.m_PieTooltipExtraRadius; } }
public static float pieSelectedOffset { get { return Instance.m_PieSelectedOffset; } }
#endregion
public static List<Theme> customThemes { get { return Instance.m_CustomThemes; } }

View File

@@ -57,7 +57,7 @@ namespace XCharts.Runtime
for (int i = 0; i < serie.dataCount; i++)
{
var serieData = serie.data[i];
var size = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, themeSymbolSize, SerieState.Emphasis);
var size = SerieHelper.GetSysmbolSize(serie, serieData, themeSymbolSize, SerieState.Emphasis);
serieData.context.highlight = true;
serieData.interact.SetValue(ref needInteract, size);
}

View File

@@ -57,7 +57,7 @@ namespace XCharts.Runtime
for (int i = 0; i < serie.dataCount; i++)
{
var serieData = serie.data[i];
var size = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, themeSymbolSize, SerieState.Emphasis);
var size = SerieHelper.GetSysmbolSize(serie, serieData, themeSymbolSize, SerieState.Emphasis);
serieData.context.highlight = true;
serieData.interact.SetValue(ref needInteract, size);
}

View File

@@ -284,7 +284,7 @@ namespace XCharts.Runtime
}
else
{
var symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, defaultSymbolSize, state);
var symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, defaultSymbolSize, state);
rectWid = symbolSize;
rectHig = symbolSize;
}
@@ -298,7 +298,7 @@ namespace XCharts.Runtime
}
else
{
var symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, defaultSymbolSize, state);
var symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, defaultSymbolSize, state);
var emptyColor = SerieHelper.GetItemBackgroundColor(serie, serieData, chart.theme, serie.context.colorIndex, state);
serieData.context.rect = new Rect(pos.x - symbolSize / 2, pos.y - symbolSize / 2, symbolSize, symbolSize);
chart.DrawSymbol(vh, symbol.type, symbolSize, symbolBorder, pos,
@@ -398,7 +398,7 @@ namespace XCharts.Runtime
}
var state = SerieHelper.GetSerieState(serie, null, true);
var symbol = SerieHelper.GetSerieSymbol(serie, null, state);
var symbolSize = SerieHelper.GetSysmbolSize(serie, null, chart.theme, defaultSymbolSize, state);
var symbolSize = SerieHelper.GetSysmbolSize(serie, null, defaultSymbolSize, state);
var isRectSymbol = symbol.type == SymbolType.Rect;
float symbolBorder = 0f;
float[] cornerRadius = null;

View File

@@ -65,7 +65,7 @@ namespace XCharts.Runtime
for (int i = 0; i < serie.dataCount; i++)
{
var serieData = serie.data[i];
var size = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, themeSymbolSize, SerieState.Emphasis);
var size = SerieHelper.GetSysmbolSize(serie, serieData, themeSymbolSize, SerieState.Emphasis);
serieData.context.highlight = true;
serieData.interact.SetValue(ref needInteract, size);
}
@@ -80,7 +80,7 @@ namespace XCharts.Runtime
var highlight = i == serie.context.pointerItemDataIndex;
serieData.context.highlight = highlight;
var state = SerieHelper.GetSerieState(serie, serieData, true);
var size = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, themeSymbolSize, state);
var size = SerieHelper.GetSysmbolSize(serie, serieData, themeSymbolSize, state);
serieData.interact.SetValue(ref needInteract, size);
if (highlight)
{
@@ -99,11 +99,11 @@ namespace XCharts.Runtime
{
var serieData = serie.data[i];
var dist = Vector3.Distance(chart.pointerPos, serieData.context.position);
var size = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, themeSymbolSize);
var size = SerieHelper.GetSysmbolSize(serie, serieData, themeSymbolSize);
var highlight = dist <= size;
serieData.context.highlight = highlight;
var state = SerieHelper.GetSerieState(serie, serieData, true);
size = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, themeSymbolSize, state);
size = SerieHelper.GetSysmbolSize(serie, serieData, themeSymbolSize, state);
serieData.interact.SetValue(ref needInteract, size);
if (highlight)
{
@@ -179,7 +179,7 @@ namespace XCharts.Runtime
var symbolSize = 0f;
if (!serieData.interact.TryGetValue(ref symbolSize, ref interacting, interactDuration))
{
symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, chart.theme.serie.lineSymbolSize, state);
symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme.serie.lineSymbolSize, state);
serieData.interact.SetValue(ref interacting, symbolSize);
symbolSize = serie.animation.GetSysmbolSize(symbolSize);
}

View File

@@ -57,7 +57,7 @@ namespace XCharts.Runtime
for (int i = 0; i < serie.dataCount; i++)
{
var serieData = serie.data[i];
var size = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, themeSymbolSize, SerieState.Emphasis);
var size = SerieHelper.GetSysmbolSize(serie, serieData, themeSymbolSize, SerieState.Emphasis);
serieData.context.highlight = true;
serieData.interact.SetValue(ref needInteract, size);
}
@@ -269,7 +269,7 @@ namespace XCharts.Runtime
if (!symbol.show || !symbol.ShowSymbol(i, count))
continue;
var symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, chart.theme.serie.lineSymbolSize, state);
var symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme.serie.lineSymbolSize, state);
SerieHelper.GetItemColor(out symbolColor, out symbolToColor, out symbolEmptyColor, serie, serieData, chart.theme, n);
SerieHelper.GetSymbolInfo(out borderColor, out symbolBorder, out cornerRadius, serie, null, chart.theme, state);

View File

@@ -100,7 +100,7 @@ namespace XCharts.Runtime
public override int GetPointerItemDataIndex()
{
var symbolSize = SerieHelper.GetSysmbolSize(serie, null, chart.theme, chart.theme.serie.lineSymbolSize) * 1.5f;
var symbolSize = SerieHelper.GetSysmbolSize(serie, null, chart.theme.serie.lineSymbolSize) * 1.5f;
var count = serie.context.dataPoints.Count;
for (int i = 0; i < count; i++)
{

View File

@@ -76,7 +76,7 @@ namespace XCharts.Runtime
for (int i = 0; i < serie.dataCount; i++)
{
var serieData = serie.data[i];
var size = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, themeSymbolSize, SerieState.Emphasis);
var size = SerieHelper.GetSysmbolSize(serie, serieData, themeSymbolSize, SerieState.Emphasis);
serieData.context.highlight = true;
serieData.interact.SetValue(ref needInteract, size);
}
@@ -91,7 +91,7 @@ namespace XCharts.Runtime
var highlight = i == serie.context.pointerItemDataIndex;
serieData.context.highlight = highlight;
var state = SerieHelper.GetSerieState(serie, serieData, true);
var size = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, themeSymbolSize, state);
var size = SerieHelper.GetSysmbolSize(serie, serieData, themeSymbolSize, state);
serieData.interact.SetValue(ref needInteract, size);
if (highlight)
{
@@ -109,11 +109,11 @@ namespace XCharts.Runtime
{
var serieData = serie.data[i];
var dist = Vector3.Distance(chart.pointerPos, serieData.context.position);
var size = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, themeSymbolSize);
var size = SerieHelper.GetSysmbolSize(serie, serieData, themeSymbolSize);
var highlight = dist <= size;
serieData.context.highlight = highlight;
var state = SerieHelper.GetSerieState(serie, serieData, true);
size = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, themeSymbolSize, state);
size = SerieHelper.GetSysmbolSize(serie, serieData, themeSymbolSize, state);
serieData.interact.SetValue(ref needInteract, size);
if (highlight)
{

View File

@@ -108,19 +108,27 @@ namespace XCharts.Runtime
{
if (m_LastCheckContextFlag != needCheck)
{
m_LastCheckContextFlag = needCheck;
serie.context.pointerItemDataIndex = -1;
serie.context.pointerEnter = false;
foreach (var serieData in serie.data)
{
var colorIndex = chart.GetLegendRealShowNameIndex(serieData.legendName);
SerieHelper.GetItemColor(out color, out toColor, serie, serieData, chart.theme, colorIndex, SerieState.Normal);
Debug.LogError("end:"+serieData.interact);
serieData.context.highlight = false;
serieData.interact.SetValueAndColor(ref needInteract, serieData.context.outsideRadius, color, toColor);
}
if (needInteract)
if (needInteract){
chart.RefreshPainter(serie);
Debug.LogError("PieHandler update:" + needInteract + "," + m_LastCheckContextFlag + "," + needCheck);
}else{
m_LastCheckContextFlag = needCheck;
serie.ResetInteract();
Debug.LogError("PieHandler end:" + needInteract + "," + m_LastCheckContextFlag + "," + needCheck);
}
}
return;
}
m_LastCheckContextFlag = needCheck;
@@ -128,32 +136,36 @@ namespace XCharts.Runtime
var dataIndex = GetPiePosIndex(serie, chart.pointerPos);
serie.context.pointerItemDataIndex = -1;
serie.context.pointerEnter = dataIndex >= 0;
bool isAllZeroValue = SerieHelper.IsAllZeroValue(serie, 1);
var zeroReplaceValue = isAllZeroValue ? 360 / serie.dataCount : 0;
for (int i = 0; i < serie.dataCount; i++)
{
var serieData = serie.data[i];
var value = isAllZeroValue ? zeroReplaceValue : serieData.GetCurrData(1, serie.animation);
var state = SerieState.Normal;
if (dataIndex == i || (m_LegendEnter && m_LegendEnterIndex == i))
{
serie.context.pointerItemDataIndex = i;
serieData.context.highlight = true;
var colorIndex = chart.GetLegendRealShowNameIndex(serieData.legendName);
SerieHelper.GetItemColor(out color, out toColor, serie, serieData, chart.theme, colorIndex, SerieState.Emphasis);
var value = serieData.context.outsideRadius + chart.theme.serie.pieTooltipExtraRadius;
serieData.interact.SetValueAndColor(ref needInteract, value, color, toColor);
state = SerieState.Emphasis;
}
else
{
serieData.context.highlight = false;
var colorIndex = chart.GetLegendRealShowNameIndex(serieData.legendName);
SerieHelper.GetItemColor(out color, out toColor, serie, serieData, chart.theme, colorIndex, SerieState.Normal);
serieData.interact.SetValueAndColor(ref needInteract, serieData.context.outsideRadius, color, toColor);
}
UpdateSerieDataRadius(serieData, value);
var colorIndex = chart.GetLegendRealShowNameIndex(serieData.legendName);
SerieHelper.GetItemColor(out color, out toColor, serie, serieData, chart.theme, colorIndex, state);
serieData.interact.SetValueAndColor(ref needInteract, serieData.context.outsideRadius, color, toColor);
}
if (lastPointerItemDataIndex != serie.context.pointerItemDataIndex)
{
needInteract = true;
}
if (needInteract)
//if (needInteract)
{
chart.RefreshPainter(serie);
}
@@ -207,20 +219,11 @@ namespace XCharts.Runtime
(float)(totalDegree * value / dataTotalFilterMinAngle);
if (serie.minAngle > 0 && degree < serie.minAngle) degree = serie.minAngle;
serieData.context.toAngle = startDegree + degree;
if (serieData.radius > 0)
serieData.context.outsideRadius = ChartHelper.GetActualValue(serieData.radius, Mathf.Min(chart.chartWidth, chart.chartHeight));
else
serieData.context.outsideRadius = serie.pieRoseType > 0 ?
serie.context.insideRadius + (float)((serie.context.outsideRadius - serie.context.insideRadius) * value / serie.context.dataMax) :
serie.context.outsideRadius;
if (serieData.context.highlight)
{
serieData.context.outsideRadius += chart.theme.serie.pieTooltipExtraRadius;
}
UpdateSerieDataRadius(serieData, value);
var offset = 0f;
if (serie.pieClickOffset && (serieData.selected || serieData.context.selected))
{
offset += chart.theme.serie.pieSelectedOffset;
offset += serie.animation.interaction.offset;
}
if (serie.animation.CheckDetailBreak(serieData.context.toAngle))
{
@@ -247,12 +250,12 @@ namespace XCharts.Runtime
serieData.context.outsideRadius -= serieData.context.offsetRadius;
if (serie.pieClickOffset && (serieData.selected || serieData.context.selected))
{
serieData.context.offsetRadius += chart.theme.serie.pieSelectedOffset;
serieData.context.offsetRadius += serie.animation.interaction.offset;
if (serieData.context.insideRadius > 0)
{
serieData.context.insideRadius += chart.theme.serie.pieSelectedOffset;
serieData.context.insideRadius += serie.animation.interaction.offset;
}
serieData.context.outsideRadius += chart.theme.serie.pieSelectedOffset;
serieData.context.outsideRadius += serie.animation.interaction.offset;
}
serieData.context.offsetCenter = new Vector3(
serie.context.center.x + serieData.context.offsetRadius * currSin,
@@ -265,6 +268,20 @@ namespace XCharts.Runtime
SerieLabelHelper.AvoidLabelOverlap(serie, chart.theme.common);
}
private void UpdateSerieDataRadius(SerieData serieData, double value)
{
if (serieData.radius > 0)
serieData.context.outsideRadius = ChartHelper.GetActualValue(serieData.radius, Mathf.Min(chart.chartWidth, chart.chartHeight));
else
serieData.context.outsideRadius = serie.pieRoseType > 0 ?
serie.context.insideRadius + (float)((serie.context.outsideRadius - serie.context.insideRadius) * value / serie.context.dataMax) :
serie.context.outsideRadius;
if (serieData.context.highlight)
{
serieData.context.outsideRadius = serie.animation.GetInteractionRadius(serieData.context.outsideRadius);
}
}
private double GetTotalAngle(Serie serie, double dataTotal, ref float totalAngle)
{
totalAngle = serie.context.startAngle + 360f;
@@ -308,6 +325,7 @@ namespace XCharts.Runtime
var interacting = false;
var color = ColorUtil.clearColor32;
var toColor = ColorUtil.clearColor32;
var interactDuration = serie.animation.GetInteractionDuration();
var data = serie.data;
serie.animation.InitProgress(0, 360);
for (int n = 0; n < data.Count; n++)
@@ -330,13 +348,12 @@ namespace XCharts.Runtime
var progress = AnimationStyleHelper.CheckDataAnimation(chart, serie, n, 1);
var insideRadius = serieData.context.insideRadius * progress;
//if (!serieData.interact.TryGetValueAndColor(ref outsideRadius, ref color, ref toColor, ref interacting))
if (!serieData.interact.TryGetValueAndColor(ref outsideRadius, ref color, ref toColor, ref interacting, interactDuration))
{
SerieHelper.GetItemColor(out color, out toColor, serie, serieData, chart.theme, colorIndex);
outsideRadius = serieData.context.outsideRadius * progress;
serieData.interact.SetValueAndColor(ref interacting, outsideRadius, color, toColor);
}
if (serie.pieClickOffset && (serieData.selected || serieData.context.selected))
{
var drawEndDegree = serieData.context.currentAngle;
@@ -514,7 +531,7 @@ namespace XCharts.Runtime
return -1;
var dist = Vector2.Distance(local, serie.context.center);
var maxRadius = serie.context.outsideRadius + 3 * chart.theme.serie.pieSelectedOffset;
var maxRadius = serie.context.outsideRadius + 3 * serie.animation.interaction.offset;
if (dist < serie.context.insideRadius || dist > maxRadius)
return -1;

View File

@@ -173,7 +173,7 @@ namespace XCharts.Runtime
for (int i = 0; i < serie.data.Count; i++)
{
var serieData = serie.data[i];
var size = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, themeSymbolSize);
var size = SerieHelper.GetSysmbolSize(serie, serieData, themeSymbolSize);
if (Vector3.Distance(chart.pointerPos, serieData.context.position) < size * 2)
{
serie.context.pointerEnter = true;
@@ -334,7 +334,7 @@ namespace XCharts.Runtime
var symbolSize = 0f;
if (!serieData.interact.TryGetValue(ref symbolSize, ref interacting, interactDuration))
{
symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, chart.theme.serie.lineSymbolSize, serieState);
symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme.serie.lineSymbolSize, serieState);
serieData.interact.SetValue(ref interacting, symbolSize);
symbolSize = serie.animation.GetSysmbolSize(symbolSize);
}
@@ -481,7 +481,7 @@ namespace XCharts.Runtime
var serieData = serie.data[j];
if (!serieData.show) continue;
var state = SerieHelper.GetSerieState(serie, serieData);
var symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, chart.theme.serie.lineSymbolSize, state);
var symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme.serie.lineSymbolSize, state);
var colorIndex = serie.colorByData ? serieData.index : serie.context.colorIndex;
SerieHelper.GetItemColor(out symbolColor, out symbolToColor, out symbolEmptyColor, serie, serieData, chart.theme, colorIndex, state);
SerieHelper.GetSymbolInfo(out borderColor, out symbolBorder, out cornerRadius, serie, serieData, chart.theme, state);

View File

@@ -81,7 +81,7 @@ namespace XCharts.Runtime
for (int i = serie.dataCount - 1; i >= 0; i--)
{
var serieData = serie.data[i];
var symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, themeSymbolSize);
var symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, themeSymbolSize);
if (m_LegendEnter ||
(!needHideAll && Vector3.Distance(serieData.context.position, chart.pointerPos) <= symbolSize))
{
@@ -94,7 +94,7 @@ namespace XCharts.Runtime
serieData.context.highlight = false;
}
var state = SerieHelper.GetSerieState(serie, serieData, true);
symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, themeSymbolSize, state);
symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, themeSymbolSize, state);
serieData.interact.SetValue(ref needInteract, symbolSize);
}
if (needInteract)
@@ -179,7 +179,7 @@ namespace XCharts.Runtime
var symbolSize = 0f;
if (!serieData.interact.TryGetValue(ref symbolSize, ref interacting, interactDuration))
{
symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, chart.theme.serie.scatterSymbolSize, state);
symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme.serie.scatterSymbolSize, state);
serieData.interact.SetValue(ref interacting, symbolSize);
}
@@ -283,7 +283,7 @@ namespace XCharts.Runtime
serieData.context.position = pos;
var datas = serieData.data;
var symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, chart.theme.serie.scatterSymbolSize, state);
var symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme.serie.scatterSymbolSize, state);
symbolSize *= rate;
if (isEffectScatter)

View File

@@ -673,7 +673,7 @@ namespace XCharts.Runtime
}
}
public static float GetSysmbolSize(Serie serie, SerieData serieData, ThemeStyle theme, float defaultSize, SerieState state = SerieState.Auto)
public static float GetSysmbolSize(Serie serie, SerieData serieData, float defaultSize, SerieState state = SerieState.Auto)
{
if (serie == null) return defaultSize;
if (state == SerieState.Auto)

View File

@@ -9,8 +9,6 @@ namespace XCharts.Runtime
[SerializeField] protected float m_LineWidth;
[SerializeField] protected float m_LineSymbolSize;
[SerializeField] protected float m_ScatterSymbolSize;
[SerializeField] protected float m_PieTooltipExtraRadius;
[SerializeField] protected float m_PieSelectedOffset;
[SerializeField] protected Color32 m_CandlestickColor = new Color32(235, 84, 84, 255);
[SerializeField] protected Color32 m_CandlestickColor0 = new Color32(71, 178, 98, 255);
[SerializeField] protected float m_CandlestickBorderWidth = 1;
@@ -45,24 +43,6 @@ namespace XCharts.Runtime
set { if (PropertyUtil.SetStruct(ref m_ScatterSymbolSize, value)) SetVerticesDirty(); }
}
/// <summary>
/// the extra radius of pie when actived by tooltip.
/// |饼图鼠标移到高亮时的额外半径
/// </summary>
public float pieTooltipExtraRadius
{
get { return m_PieTooltipExtraRadius; }
set { if (PropertyUtil.SetStruct(ref m_PieTooltipExtraRadius, value < 0 ? 0f : value)) SetVerticesDirty(); }
}
/// <summary>
/// the center offset of pie if selected.
/// |饼图选中时的中心点偏移。
/// </summary>
public float pieSelectedOffset
{
get { return m_PieSelectedOffset; }
set { if (PropertyUtil.SetStruct(ref m_PieSelectedOffset, value < 0 ? 0f : value)) SetVerticesDirty(); }
}
/// <summary>
/// K线图阳线填充色
/// </summary>
public Color32 candlestickColor
@@ -109,8 +89,6 @@ namespace XCharts.Runtime
m_LineWidth = theme.lineWidth;
m_LineSymbolSize = theme.lineSymbolSize;
m_ScatterSymbolSize = theme.scatterSymbolSize;
m_PieTooltipExtraRadius = theme.pieTooltipExtraRadius;
m_PieSelectedOffset = theme.pieSelectedOffset;
m_CandlestickColor = theme.candlestickColor;
m_CandlestickColor0 = theme.candlestickColor0;
m_CandlestickBorderColor = theme.candlestickBorderColor;
@@ -123,8 +101,6 @@ namespace XCharts.Runtime
m_LineWidth = XCSettings.serieLineWidth;
m_LineSymbolSize = XCSettings.serieLineSymbolSize;
m_ScatterSymbolSize = XCSettings.serieScatterSymbolSize;
m_PieTooltipExtraRadius = XCSettings.pieTooltipExtraRadius;
m_PieSelectedOffset = XCSettings.pieSelectedOffset;
m_CandlestickBorderWidth = XCSettings.serieCandlestickBorderWidth;
switch (theme)
{