diff --git a/Runtime/Component/Main/Series.cs b/Runtime/Component/Main/Series.cs
index 22b873c5..ca1eb5c8 100644
--- a/Runtime/Component/Main/Series.cs
+++ b/Runtime/Component/Main/Series.cs
@@ -214,6 +214,15 @@ namespace XCharts
return false;
}
+ public bool Contains(SerieType type)
+ {
+ foreach (var serie in m_Series)
+ {
+ if (serie.type == type) return true;
+ }
+ return false;
+ }
+
///
/// Remove serie from series.
/// 移除指定名字的系列。
@@ -327,7 +336,7 @@ namespace XCharts
return null;
}
- public SerieData AddData(string serieName, float open, float close, float lowest, float heighest, string dataName = null)
+ public SerieData AddData(string serieName, float open, float close, float lowest, float heighest, string dataName = null)
{
var serie = GetSerie(serieName);
if (serie != null)
diff --git a/Runtime/Component/Main/Tooltip.cs b/Runtime/Component/Main/Tooltip.cs
index 57ccca25..eae60e7d 100644
--- a/Runtime/Component/Main/Tooltip.cs
+++ b/Runtime/Component/Main/Tooltip.cs
@@ -481,9 +481,8 @@ namespace XCharts
///
internal void UpdateLastDataIndex()
{
- lastDataIndex[0] = runtimeDataIndex[0];
- if (runtimeDataIndex.Count > 1)
- lastDataIndex[1] = runtimeDataIndex[1];
+ if (lastDataIndex.Count > 0 && runtimeDataIndex.Count > 0) lastDataIndex[0] = runtimeDataIndex[0];
+ if (lastDataIndex.Count > 0 && runtimeDataIndex.Count > 1) lastDataIndex[1] = runtimeDataIndex[1];
}
///
diff --git a/Runtime/Internal/DrawSerieGauge.cs b/Runtime/Internal/DrawSerieGauge.cs
index e0d8a7fe..41e8945d 100644
--- a/Runtime/Internal/DrawSerieGauge.cs
+++ b/Runtime/Internal/DrawSerieGauge.cs
@@ -79,6 +79,7 @@ namespace XCharts
public bool CheckTootipArea(Vector2 local)
{
+ if (chart.series.Contains(SerieType.Gauge)) return false;
var serie = GetPointerInSerieIndex(chart.series, local);
if (serie != null)
{
diff --git a/Runtime/Internal/DrawSeriePie.cs b/Runtime/Internal/DrawSeriePie.cs
index 6b8eb6ed..aa5f3f1a 100644
--- a/Runtime/Internal/DrawSeriePie.cs
+++ b/Runtime/Internal/DrawSeriePie.cs
@@ -75,6 +75,7 @@ namespace XCharts
public bool CheckTootipArea(Vector2 local)
{
+ if (chart.series.Contains(SerieType.Pie)) return false;
bool selected = false;
chart.tooltip.runtimeDataIndex.Clear();
foreach (var serie in chart.series.list)
@@ -102,7 +103,7 @@ namespace XCharts
chart.tooltip.SetActive(false);
chart.RefreshChart();
}
- return true;
+ return selected;
}
public bool OnLegendButtonClick(int index, string legendName, bool show)
diff --git a/Runtime/Internal/DrawSerieRadar.cs b/Runtime/Internal/DrawSerieRadar.cs
index cb0bcc09..0a0525f0 100644
--- a/Runtime/Internal/DrawSerieRadar.cs
+++ b/Runtime/Internal/DrawSerieRadar.cs
@@ -119,6 +119,7 @@ namespace XCharts
public bool CheckTootipArea(Vector2 local)
{
+ if (chart.series.Contains(SerieType.Radar)) return false;
if (m_IsEnterLegendButtom) return false;
if (!IsInRadar(local)) return false;
bool highlight = false;
diff --git a/Runtime/Internal/DrawSerieRing.cs b/Runtime/Internal/DrawSerieRing.cs
index e990a927..9b5b7d74 100644
--- a/Runtime/Internal/DrawSerieRing.cs
+++ b/Runtime/Internal/DrawSerieRing.cs
@@ -127,6 +127,7 @@ namespace XCharts
public bool CheckTootipArea(Vector2 local)
{
+ if (chart.series.Contains(SerieType.Ring)) return false;
if (!PointerIsInRingSerie(chart.series, local)) return false;
if (m_IsEnterLegendButtom) return false;
bool selected = false;