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
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);
|
||
|
}
|
||
|
}
|
||
|
}
|