天津23维预案
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
2.2 KiB

3 years ago
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Events;
using UnityEngine.EventSystems;
namespace UIWidgets {
/// <summary>
/// Pointer unity event.
/// </summary>
[System.Serializable]
public class PointerUnityEvent : UnityEvent<PointerEventData> {
}
/// <summary>
/// Button advanced. You can add callback on PointerEnter/Exit/Down/Up
/// </summary>
public class ButtonAdvanced : UnityEngine.UI.Button,
IPointerDownHandler,
IPointerUpHandler,
IPointerEnterHandler,
IPointerExitHandler
{
/// <summary>
/// What to do when the event system send a pointer down Event.
/// </summary>
public PointerUnityEvent onPointerDown = new PointerUnityEvent();
/// <summary>
/// What to do when the event system send a pointer up Event.
/// </summary>
public PointerUnityEvent onPointerUp = new PointerUnityEvent();
/// <summary>
/// What to do when the event system send a pointer enter Event.
/// </summary>
public PointerUnityEvent onPointerEnter = new PointerUnityEvent();
/// <summary>
/// What to do when the event system send a pointer exit Event.
/// </summary>
public PointerUnityEvent onPointerExit = new PointerUnityEvent();
/// <summary>
/// Raises the pointer down event.
/// </summary>
/// <param name="eventData">Current event data.</param>
public override void OnPointerDown(PointerEventData eventData)
{
onPointerDown.Invoke(eventData);
base.OnPointerDown(eventData);
}
/// <summary>
/// Raises the pointer up event.
/// </summary>
/// <param name="eventData">Current event data.</param>
public override void OnPointerUp(PointerEventData eventData)
{
onPointerUp.Invoke(eventData);
base.OnPointerUp(eventData);
}
/// <summary>
/// Raises the pointer enter event.
/// </summary>
/// <param name="eventData">Current event data.</param>
public override void OnPointerEnter(PointerEventData eventData)
{
onPointerEnter.Invoke(eventData);
base.OnPointerEnter(eventData);
}
/// <summary>
/// Raises the pointer exit event.
/// </summary>
/// <param name="eventData">Current event data.</param>
public override void OnPointerExit(PointerEventData eventData)
{
onPointerExit.Invoke(eventData);
base.OnPointerExit(eventData);
}
}
}