From 90e9187808c3f32462c65fb9394e79bc6026ad84 Mon Sep 17 00:00:00 2001 From: monitor1394 Date: Thu, 15 Jan 2026 08:53:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D`Pie`=E7=9A=84=E7=82=B9?= =?UTF-8?q?=E5=87=BB=E6=9C=89=E6=97=B6=E5=80=99=E4=B8=8D=E5=93=8D=E5=BA=94?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=20(#357)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Documentation~/zh/changelog.md | 1 + Runtime/Serie/Pie/PieHandler.cs | 11 +++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Documentation~/zh/changelog.md b/Documentation~/zh/changelog.md index bea460d3..5dd34e6a 100644 --- a/Documentation~/zh/changelog.md +++ b/Documentation~/zh/changelog.md @@ -80,6 +80,7 @@ slug: /changelog ## master +* (2026.01.15) 修复`Pie`的点击有时候不响应的问题 (#357) * (2026.01.08) 增加`DataZoom`的`minZoomRatio`替换旧的`minShowNum` (#350) * (2025.11.05) 修复`Axis`的`indicatorLabel`无法隐藏的问题 * (2025.11.03) 增加`Tooltip`的`Title`可通过`TitleLabelStyle`的`numericFormatter`格式化时间显示 (#353) diff --git a/Runtime/Serie/Pie/PieHandler.cs b/Runtime/Serie/Pie/PieHandler.cs index f9fba3fc..0e30f5c3 100644 --- a/Runtime/Serie/Pie/PieHandler.cs +++ b/Runtime/Serie/Pie/PieHandler.cs @@ -271,6 +271,7 @@ namespace XCharts.Runtime } var offset = 0f; var interactOffset = serie.animation.interaction.GetOffset(serie.context.outsideRadius); + serieData.context.insideRadius = serie.context.insideRadius; if (serie.pieClickOffset && (serieData.selected || serieData.context.selected)) { offset += interactOffset; @@ -554,10 +555,11 @@ namespace XCharts.Runtime var dist = Vector2.Distance(local, serie.context.center); var interactOffset = serie.animation.interaction.GetOffset(serie.context.outsideRadius); - var maxRadius = serie.context.outsideRadius + 2 * interactOffset; - if (dist < serie.context.insideRadius || dist > maxRadius) + var maxRadius = serie.context.outsideRadius + interactOffset; + if (dist < serie.context.insideRadius - interactOffset || dist > maxRadius) + { return -1; - + } var dir = local - new Vector2(serie.context.center.x, serie.context.center.y); var angle = ChartHelper.GetAngle360(Vector2.up, dir); for (int i = 0; i < serie.data.Count; i++) @@ -568,7 +570,8 @@ namespace XCharts.Runtime var ndist = (serieData.selected || serieData.context.selected) ? Vector2.Distance(local, serieData.context.offsetCenter) : dist; - if (ndist >= serieData.context.insideRadius && ndist <= serieData.context.outsideRadius) + ndist = dist; + if (ndist >= serieData.context.insideRadius - interactOffset && ndist <= serieData.context.outsideRadius) { return i; }