From 18c0d3218d1f1b003a0e7bc0afe9ecfb51997504 Mon Sep 17 00:00:00 2001 From: monitor1394 Date: Fri, 28 Jul 2023 08:09:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=A5=BC=E5=9B=BE=E5=9C=A8In?= =?UTF-8?q?spector=E4=B8=8A=E4=BF=AE=E6=94=B9=E7=9B=B8=E5=85=B3=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E5=90=8E=E4=B8=8D=E5=88=B7=E6=96=B0=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Runtime/Internal/BaseChart.cs | 6 ++++++ Runtime/Serie/Pie/PieHandler.cs | 4 ++-- Runtime/Serie/SerieHandler.cs | 8 ++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Runtime/Internal/BaseChart.cs b/Runtime/Internal/BaseChart.cs index b0177bd1..c3d6e594 100644 --- a/Runtime/Internal/BaseChart.cs +++ b/Runtime/Internal/BaseChart.cs @@ -172,6 +172,12 @@ namespace XCharts.Runtime DefaultChart(); Awake(); } + + protected override void OnValidate() + { + base.OnValidate(); + foreach (var handler in m_SerieHandlers) handler.OnValidate(); + } #endif protected override void Start() diff --git a/Runtime/Serie/Pie/PieHandler.cs b/Runtime/Serie/Pie/PieHandler.cs index 7fd6dc77..3340d269 100644 --- a/Runtime/Serie/Pie/PieHandler.cs +++ b/Runtime/Serie/Pie/PieHandler.cs @@ -76,13 +76,13 @@ namespace XCharts.Runtime public override void UpdateSerieContext() { - var needCheck = m_LegendEnter || m_LegendExiting || (chart.isPointerInChart && PointerIsInPieSerie(serie, chart.pointerPos)); + var needCheck = m_LegendEnter || m_LegendExiting || m_ForceUpdateSerieContext || (chart.isPointerInChart && PointerIsInPieSerie(serie, chart.pointerPos)); var needInteract = false; var interactEnable = serie.animation.enable && serie.animation.interaction.enable; Color32 color, toColor; if (!needCheck) { - if (m_LastCheckContextFlag != needCheck) + if (m_LastCheckContextFlag != needCheck || m_ForceUpdateSerieContext) { serie.context.pointerItemDataIndex = -1; serie.context.pointerEnter = false; diff --git a/Runtime/Serie/SerieHandler.cs b/Runtime/Serie/SerieHandler.cs index 7a366234..d880f51b 100644 --- a/Runtime/Serie/SerieHandler.cs +++ b/Runtime/Serie/SerieHandler.cs @@ -29,6 +29,7 @@ namespace XCharts.Runtime public virtual void OnBeginDrag(PointerEventData eventData) { } public virtual void OnEndDrag(PointerEventData eventData) { } public virtual void OnScroll(PointerEventData eventData) { } + public virtual void OnValidate() { } public virtual void RefreshLabelNextFrame() { } public virtual void RefreshLabelInternal() { } public virtual void UpdateSerieContext() { } @@ -59,6 +60,7 @@ namespace XCharts.Runtime protected bool m_LastCheckContextFlag = false; protected bool m_LegendEnter = false; protected bool m_LegendExiting = false; + protected bool m_ForceUpdateSerieContext = false; protected int m_LegendEnterIndex; protected ChartLabel m_EndLabel; @@ -73,6 +75,11 @@ namespace XCharts.Runtime AnimationStyleHelper.UpdateSerieAnimation(serie); } + public override void OnValidate() + { + m_ForceUpdateSerieContext = true; + } + public override void Update() { if (m_NeedInitComponent) @@ -134,6 +141,7 @@ namespace XCharts.Runtime var lastEnter = serie.context.pointerEnter; var lastDataIndex = serie.context.pointerItemDataIndex; UpdateSerieContext(); + m_ForceUpdateSerieContext = false; if (lastEnter != serie.context.pointerEnter || lastDataIndex != serie.context.pointerItemDataIndex) { if (chart.onSerieEnter != null || chart.onSerieExit != null || serie.onEnter != null || serie.onExit != null)