Skip to content

Instantly share code, notes, and snippets.

@Shiheuan
Last active July 17, 2019 12:38
Show Gist options
  • Save Shiheuan/70e8536a83d9cdd428ae479a1df18c15 to your computer and use it in GitHub Desktop.
Save Shiheuan/70e8536a83d9cdd428ae479a1df18c15 to your computer and use it in GitHub Desktop.
Unity UI EventTrigger instance
using UnityEngine;
using UnityEngine.EventSystems;
public class UIEventListener : EventTrigger
{
public delegate void UIDelegate(GameObject go);
public delegate void UIDragDelegate(Vector2 pressionPosition);
public event UIDelegate onPointerEnter;
public event UIDelegate onPointerExit;
public event UIDelegate onPointerDown;
public event UIDelegate onPointerUp;
public event UIDelegate onPointerClick;
public event UIDelegate onInitializePotentialDrag;
public event UIDelegate onBeginDrag;
public event UIDelegate onDrag;
public event UIDelegate onEndDrag;
public event UIDelegate onDrop;
public event UIDelegate onScroll;
public event UIDelegate onUpdateSelected;
public event UIDelegate onSelect;
public event UIDelegate onDeselect;
public event UIDelegate onMove;
public event UIDelegate onSubmit;
public event UIDelegate onCancel;
public event UIDragDelegate onBeginDragEx;
public event UIDragDelegate onDragEx;
public event UIDragDelegate onEndDragEx;
public static UIEventListener GetListener(GameObject go)
{
UIEventListener listener = go.GetComponent<UIEventListener>();
if (null == listener)
{
listener = go.AddComponent<UIEventListener>();
}
return listener;
}
public override void OnPointerEnter(PointerEventData eventData)
{
if (null != onPointerEnter)
{
onPointerEnter(gameObject);
}
}
public override void OnPointerExit(PointerEventData eventData)
{
if (null != onPointerExit)
{
onPointerExit(gameObject);
}
}
public override void OnPointerDown(PointerEventData eventData)
{
if (null != onPointerDown)
{
onPointerDown(gameObject);
}
}
public override void OnPointerUp(PointerEventData eventData)
{
if (null != onPointerUp)
{
onPointerUp(gameObject);
}
}
public override void OnPointerClick(PointerEventData eventData)
{
if (null != onPointerClick)
{
onPointerClick(gameObject);
}
}
public override void OnInitializePotentialDrag(PointerEventData eventData)
{
if (null != onInitializePotentialDrag)
{
onInitializePotentialDrag(gameObject);
}
}
public override void OnBeginDrag(PointerEventData eventData)
{
if (null != onBeginDrag)
{
onBeginDrag(gameObject);
}
if (null != onBeginDragEx)
{
onBeginDragEx(eventData.position);
}
}
public override void OnDrag(PointerEventData eventData)
{
if (null != onDrag)
{
onDrag(gameObject);
}
if (null != onDragEx)
{
onDragEx(eventData.position);
}
}
public override void OnEndDrag(PointerEventData eventData)
{
if (null != onEndDrag)
{
onEndDrag(gameObject);
}
if (null != onEndDragEx)
{
onEndDragEx(eventData.position);
}
}
public override void OnDrop(PointerEventData eventData)
{
if (null != onDrop)
{
onDrop(gameObject);
}
}
public override void OnScroll(PointerEventData eventData)
{
if (null != onScroll)
{
onScroll(gameObject);
}
}
public override void OnUpdateSelected(BaseEventData eventData)
{
if (null != onUpdateSelected)
{
onUpdateSelected(gameObject);
}
}
public override void OnSelect(BaseEventData eventData)
{
if (null != onSelect)
{
onSelect(gameObject);
}
}
public override void OnDeselect(BaseEventData eventData)
{
if (null != onDeselect)
{
onDeselect(gameObject);
}
}
public override void OnMove(AxisEventData eventData)
{
if (null != onMove)
{
onMove(gameObject);
}
}
public override void OnSubmit(BaseEventData eventData)
{
if (null != onSubmit)
{
onSubmit(gameObject);
}
}
public override void OnCancel(BaseEventData eventData)
{
if (null != onCancel)
{
onCancel(gameObject);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment