来自雨松大大的文章。。。。。。。
using UnityEngine;
using UnityEngine.EventSystems;public class EventTriggerListener : EventTrigger
{
public delegate void VoidDelegate(GameObject go);
/// <summary>
/// 当被点击
/// </summary>
public VoidDelegate onClick;
/// <summary>
/// 当被点击
/// </summary>
public VoidDelegate onDown;
/// <summary>
/// 当鼠标进入
/// </summary>
public VoidDelegate onEnter;
/// <summary>
/// 当鼠标离开
/// </summary>
public VoidDelegate onExit;
/// <summary>
/// 鼠标点击后松开
/// </summary>
public VoidDelegate onUp;
/// <summary>
/// 当被选择
/// </summary>
public VoidDelegate onSelect;
/// <summary>
/// 一直被选择
/// </summary>
public VoidDelegate onUpdateSelect;
static public EventTriggerListener Get(GameObject go)
{
EventTriggerListener listener = go.GetComponent<EventTriggerListener>();
if (listener == null) listener = go.AddComponent<EventTriggerListener>();
return listener;
}
public override void OnPointerClick(PointerEventData eventData)
{
if (onClick != null) onClick(gameObject);
}
public override void OnPointerDown(PointerEventData eventData)
{
if (onDown != null) onDown(gameObject);
}
public override void OnPointerEnter(PointerEventData eventData)
{
if (onEnter != null) onEnter(gameObject);
}
public override void OnPointerExit(PointerEventData eventData)
{
if (onExit != null) onExit(gameObject);
}
public override void OnPointerUp(PointerEventData eventData)
{
if (onUp != null) onUp(gameObject);
}
public override void OnSelect(BaseEventData eventData)
{
if (onSelect != null) onSelect(gameObject);
}
public override void OnUpdateSelected(BaseEventData eventData)
{
if (onUpdateSelect != null) onUpdateSelect(gameObject);
}
}