using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems; //事件系统
public class EventTriggerListener : UnityEngine.EventSystems.EventTrigger
{
public delegate void VoidDelegate(GameObject go);
public VoidDelegate onClick;
public VoidDelegate onDown;
public VoidDelegate onEnter;
public VoidDelegate onExit;
public VoidDelegate onUp;
public VoidDelegate onSelect;
public VoidDelegate onUpdateSelect;
public VoidDelegate onDrag;
public VoidDelegate onBeginDrag;
public VoidDelegate onEndDrag;
/// <summary>
/// 得到“监听器”组件
/// </summary>
/// <param name="go">监听的游戏对象</param>
/// <returns>
/// 返回监听器
/// </returns>
public static EventTriggerListener Get(GameObject go)
{
EventTriggerListener lister = go.GetComponent<EventTriggerListener>();
if (lister==null)
{
lister = go.AddComponent<EventTriggerListener>();
}
return lister;
}
public override void OnPointerClick(PointerEventData eventData)
{
base.OnPointerClick(eventData);
if (onClick!=null)
{
onClick(gameObject);
}
}
public override void OnPointerDown(PointerEventData eventData)
{
base.OnPointerDown(eventData);
if (onDown != null)
{
onDown(gameObject);
}
}
public override void OnPointerEnter(PointerEventData eventData)
{
base.OnPointerEnter(eventData);
if (onEnter != null)
{
onEnter(gameObject);
}
}
public override void OnPointerExit(PointerEventData eventData)
{
base.OnPointerExit(eventData);
if (onExit != null)
{
onExit(gameObject);
}
}
public override void OnPointerUp(PointerEventData eventData)
{
base.OnPointerUp(eventData);
if (onUp != null)
{
onUp(gameObject);
}
}
public override void OnSelect(BaseEventData eventData)
{
base.OnSelect(eventData);
if (onSelect != null)
{
onSelect(gameObject);
}
}
public override void OnUpdateSelected(BaseEventData eventData)
{
base.OnUpdateSelected(eventData);
if (onUpdateSelect != null)
{
onUpdateSelect(gameObject);
}
}
public override void OnDrag(BaseEventData eventData)
{
base.OnDrag(eventData);
if (onDrag != null)
{
onDrag(gameObject);
}
}
public override void OnBeginDrag(BaseEventData eventData)
{
base.OnBeginDrag(eventData);
if (onBeginDrag != null)
{
onBeginDrag(gameObject);
}
}
public override void OnEndDrag(BaseEventData eventData)
{
base.OnEndDrag(eventData);
if (onEndDrag != null)
{
onEndDrag(gameObject);
}
}
}