From 83db4dd951a572b2911c2f5a6bbac867b593694b Mon Sep 17 00:00:00 2001 From: monitor1394 Date: Sun, 5 Nov 2023 20:09:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D`SerieEventData`=E7=9A=84`val?= =?UTF-8?q?ue`=E4=B8=80=E7=9B=B4=E6=98=AF0=E7=9A=84=E9=97=AE=E9=A2=98=20(#?= =?UTF-8?q?287)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Documentation~/zh/changelog.md | 1 + Examples/Example02_ChartEvent.cs | 6 +-- Runtime/Internal/BaseChart.cs | 3 +- Runtime/Internal/Pools/SerieEventDataPool.cs | 1 + Runtime/Serie/SerieHandler.cs | 56 ++++++++++---------- 5 files changed, 35 insertions(+), 32 deletions(-) diff --git a/Documentation~/zh/changelog.md b/Documentation~/zh/changelog.md index 99b7e6fb..2caaab95 100644 --- a/Documentation~/zh/changelog.md +++ b/Documentation~/zh/changelog.md @@ -69,6 +69,7 @@ slug: /changelog ## master +* (2023.11.05) 修复`SerieEventData`的`value`一直是0的问题 (#287) * (2023.11.03) 修复`Bar`设置渐变色时鼠标移出效果异常的问题 (#285) * (2023.11.02) 优化`SerieData`设置`ignore`时`formatter`的忽略问题 * (2023.11.01) 增加`MarkLine`的`onTop`设置是否显示在最上层 diff --git a/Examples/Example02_ChartEvent.cs b/Examples/Example02_ChartEvent.cs index 7847cf77..6c2ce5b8 100644 --- a/Examples/Example02_ChartEvent.cs +++ b/Examples/Example02_ChartEvent.cs @@ -65,17 +65,17 @@ namespace XCharts.Example void OnSerieClick(SerieEventData data) { - Debug.Log("OnSerieClick: " + data.serieIndex + " " + data.dataIndex + " " + data.dimension); + Debug.Log("OnSerieClick: " + data.serieIndex + " " + data.dataIndex + " " + data.dimension + " " + data.value); } void OnSerieEnter(SerieEventData data) { - Debug.Log("OnSerieEnter: " + data.serieIndex + " " + data.dataIndex + " " + data.dimension); + Debug.Log("OnSerieEnter: " + data.serieIndex + " " + data.dataIndex + " " + data.dimension + " " + data.value); } void OnSerieExit(SerieEventData data) { - Debug.Log("OnSerieExit: " + data.serieIndex + " " + data.dataIndex + " " + data.dimension); + Debug.Log("OnSerieExit: " + data.serieIndex + " " + data.dataIndex + " " + data.dimension + " " + data.value); } void OnDraw(VertexHelper vh) diff --git a/Runtime/Internal/BaseChart.cs b/Runtime/Internal/BaseChart.cs index e991ceb9..8c1625e4 100644 --- a/Runtime/Internal/BaseChart.cs +++ b/Runtime/Internal/BaseChart.cs @@ -195,8 +195,9 @@ namespace XCharts.Runtime Internal_CheckAnimation(); foreach (var handler in m_SerieHandlers) handler.BeforeUpdate(); foreach (var handler in m_SerieHandlers) handler.Update(); - foreach (var handler in m_SerieHandlers) handler.AfterUpdate(); foreach (var handler in m_ComponentHandlers) handler.Update(); + foreach (var handler in m_SerieHandlers) handler.AfterUpdate(); + m_DebugInfo.Update(); if (m_OnUpdate != null) m_OnUpdate(); diff --git a/Runtime/Internal/Pools/SerieEventDataPool.cs b/Runtime/Internal/Pools/SerieEventDataPool.cs index 899d51f0..d0367ae3 100644 --- a/Runtime/Internal/Pools/SerieEventDataPool.cs +++ b/Runtime/Internal/Pools/SerieEventDataPool.cs @@ -22,6 +22,7 @@ namespace XCharts.Runtime data.dataIndex = dataIndex; data.pointerPos = pos; data.dimension = dimension; + data.value = value; return data; } diff --git a/Runtime/Serie/SerieHandler.cs b/Runtime/Serie/SerieHandler.cs index f2774cfb..07ca66b3 100644 --- a/Runtime/Serie/SerieHandler.cs +++ b/Runtime/Serie/SerieHandler.cs @@ -149,38 +149,11 @@ namespace XCharts.Runtime serie.interactDirty = false; m_ForceUpdateSerieContext = true; } + UpdateSerieContextInternal(); } public override void AfterUpdate() { - UpdateSerieContextInternal(); - } - - public override void ForceUpdateSerieContext() - { - m_ForceUpdateSerieContext = true; - } - - private void CheckConfigurationChanged() - { - if (m_LastRadius[0] != serie.radius[0] || m_LastRadius[1] != serie.radius[1]) - { - m_LastRadius[0] = serie.radius[0]; - m_LastRadius[1] = serie.radius[1]; - serie.SetVerticesDirty(); - } - if (m_LastCenter[0] != serie.center[0] || m_LastCenter[1] != serie.center[1]) - { - m_LastCenter[0] = serie.center[0]; - m_LastCenter[1] = serie.center[1]; - serie.SetVerticesDirty(); - } - } - - private void UpdateSerieContextInternal() - { - UpdateSerieContext(); - m_ForceUpdateSerieContext = false; if (m_LastPointerEnter != serie.context.pointerEnter || m_LastPointerDataIndex != serie.context.pointerItemDataIndex) { if (chart.onSerieEnter != null || chart.onSerieExit != null || serie.onEnter != null || serie.onExit != null) @@ -215,6 +188,33 @@ namespace XCharts.Runtime } } + public override void ForceUpdateSerieContext() + { + m_ForceUpdateSerieContext = true; + } + + private void CheckConfigurationChanged() + { + if (m_LastRadius[0] != serie.radius[0] || m_LastRadius[1] != serie.radius[1]) + { + m_LastRadius[0] = serie.radius[0]; + m_LastRadius[1] = serie.radius[1]; + serie.SetVerticesDirty(); + } + if (m_LastCenter[0] != serie.center[0] || m_LastCenter[1] != serie.center[1]) + { + m_LastCenter[0] = serie.center[0]; + m_LastCenter[1] = serie.center[1]; + serie.SetVerticesDirty(); + } + } + + private void UpdateSerieContextInternal() + { + UpdateSerieContext(); + m_ForceUpdateSerieContext = false; + } + public override void RefreshLabelNextFrame() { m_RefreshLabel = true;