mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-21 16:00:24 +00:00
增加onPointerClickPie和onPointerClickBar回调
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UI;
|
||||
@@ -15,11 +16,13 @@ namespace XCharts
|
||||
[ExecuteInEditMode]
|
||||
[RequireComponent(typeof(RectTransform))]
|
||||
[DisallowMultipleComponent]
|
||||
public class PieChart : BaseChart
|
||||
public partial class PieChart : BaseChart
|
||||
{
|
||||
private bool isDrawPie;
|
||||
private bool m_IsEnterLegendButtom;
|
||||
|
||||
protected Action<PointerEventData, int, int> m_OnPointerClickPie;
|
||||
|
||||
protected override void Awake()
|
||||
{
|
||||
base.Awake();
|
||||
@@ -529,28 +532,28 @@ namespace XCharts
|
||||
public override void OnPointerDown(PointerEventData eventData)
|
||||
{
|
||||
base.OnPointerDown(eventData);
|
||||
|
||||
Vector2 local;
|
||||
if (!RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform,
|
||||
eventData.position, canvas.worldCamera, out local))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (pointerPos == Vector2.zero) return;
|
||||
var refresh = false;
|
||||
for (int i = 0; i < m_Series.Count; i++)
|
||||
{
|
||||
var serie = m_Series.GetSerie(i);
|
||||
if (serie.type != SerieType.Pie) continue;
|
||||
var index = GetPosPieIndex(serie, local);
|
||||
var index = GetPosPieIndex(serie, 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 (m_OnPointerClickPie != null)
|
||||
{
|
||||
m_OnPointerClickPie(eventData, i, index);
|
||||
}
|
||||
}
|
||||
}
|
||||
RefreshChart();
|
||||
if (refresh) RefreshChart();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user