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;