12 [AddComponentMenu(
"XCharts/ScatterChart", 17)]
14 [RequireComponent(typeof(RectTransform))]
15 [DisallowMultipleComponent]
18 private float m_EffectScatterSpeed = 15;
19 private float m_EffectScatterSize;
20 private float m_EffectScatterAplha;
23 protected override void Reset()
26 title.text =
"ScatterChart";
29 m_XAxes[0].boundaryGap =
false;
31 m_XAxes[1].boundaryGap =
false;
33 SerieTemplate.AddDefaultScatterSerie(
this,
"serie1");
37 protected override void Update()
40 bool hasEffectScatter =
false;
41 foreach (var serie
in m_Series.list)
43 if (serie.type ==
SerieType.EffectScatter)
45 hasEffectScatter =
true;
46 var symbolSize = serie.symbol.GetSize(
null, m_Theme.serie.scatterSymbolSize);
47 for (
int i = 0; i < serie.symbol.animationSize.Count; ++i)
49 serie.symbol.animationSize[i] += m_EffectScatterSpeed * Time.deltaTime;
50 if (serie.symbol.animationSize[i] > symbolSize)
52 serie.symbol.animationSize[i] = i * 5;
63 protected override void CheckTootipArea(Vector2 local,
bool isActivedOther)
65 base.CheckTootipArea(local, isActivedOther);
66 if (isActivedOther)
return;
67 tooltip.ClearSerieDataIndex();
68 bool selected =
false;
69 foreach (var serie
in m_Series.list)
71 if (!serie.show)
continue;
72 if (serie.type !=
SerieType.Scatter && serie.type !=
SerieType.EffectScatter)
continue;
74 var dataCount = serie.data.Count;
75 for (
int j = 0; j < serie.data.Count; j++)
77 var serieData = serie.data[j];
78 var symbol = SerieHelper.GetSerieSymbol(serie, serieData);
79 if (!symbol.ShowSymbol(j, dataCount))
continue;
80 var dist = Vector3.Distance(local, serieData.runtimePosition);
81 if (dist <= symbol.GetSize(serieData.data, m_Theme.serie.scatterSymbolSize))
83 serieData.selected =
true;
84 tooltip.AddSerieDataIndex(serie.index, j);
89 serieData.selected =
false;
92 if (refresh) RefreshChart();
96 tooltip.UpdateContentPos(local + tooltip.offset);
99 else if (tooltip.IsActive())
101 tooltip.SetActive(
false);
106 protected override void UpdateTooltip()
108 base.UpdateTooltip();
109 if (tooltip.isAnySerieDataIndex())
111 var content = TooltipHelper.GetFormatterContent(tooltip, 0,
this);
112 TooltipHelper.SetContentAndPosition(tooltip, content, chartRect);
113 tooltip.SetActive(
true);
117 tooltip.SetActive(
false);