public void OnPointerDown(PointerEventData eventData) { if (!SeriesHelper.ContainsSerie(chart.series, SerieType.Pie)) { return; } if (chart.pointerPos == Vector2.zero) { return; } var refresh = false; for (int i = 0; i < chart.series.Count; i++) { var serie = chart.series.GetSerie(i); if (serie.type != SerieType.Pie) { continue; } var index = GetPiePosIndex(serie, chart.pointerPos); if (index >= 0) { refresh = true; for (int j = 0; j < serie.data.Count; j++) { if (j == index) { serie.data[j].selected = !serie.data[j].selected; } else { serie.data[j].selected = false; } } if (chart.onPointerClickPie != null) { chart.onPointerClickPie(eventData, i, index); } } } if (refresh) { chart.RefreshChart(); } }