using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
///
/// 在任意地方都可以监听到UI的输入事件
///
public class UIEventHandler : MonoBehaviour
{
public class TriggerEvent : UnityEvent {}
private TriggerEvent m_OnClick = new TriggerEvent();
public TriggerEvent onClick
{
get { return m_OnClick; }
set { m_OnClick = value; }
}
private void OnEnable()
{
AdvExecuteEvents.onClick.AddListener(OnPointerClick);
}
private void OnDisable()
{
AdvExecuteEvents.onClick.RemoveListener(OnPointerClick);
}
public virtual void OnPointerClick(PointerEventData eventData)
{
onClick.Invoke(eventData.pointerCurrentRaycast.gameObject);
}
public void RemoveListener()
{
onClick.RemoveAllListeners();
}
}