Skip to content

Instantly share code, notes, and snippets.

@mrcarriere
Created August 7, 2022 22:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mrcarriere/f783dc660256391cd36123129f5edc43 to your computer and use it in GitHub Desktop.
Save mrcarriere/f783dc660256391cd36123129f5edc43 to your computer and use it in GitHub Desktop.
Basic Component to make many Pointer Events available.
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
public class ButtonEvents : MonoBehaviour,
IPointerDownHandler,
IPointerUpHandler,
IPointerEnterHandler,
IPointerExitHandler,
IPointerClickHandler
{
[SerializeField]
private UnityEvent _pointerDown;
[SerializeField]
private UnityEvent _pointerUp;
[SerializeField]
private UnityEvent _pointerEnter;
[SerializeField]
private UnityEvent _pointerExit;
[SerializeField]
private UnityEvent _pointerClick;
public UnityEvent PointerDown => _pointerDown;
public UnityEvent PointerUp => _pointerUp;
public UnityEvent PointerEnter => _pointerEnter;
public UnityEvent PointerExit => _pointerExit;
public UnityEvent PointerClick => _pointerClick;
public void OnPointerDown(PointerEventData eventData)
{
PointerDown?.Invoke();
}
public void OnPointerUp(PointerEventData eventData)
{
PointerUp?.Invoke();
}
public void OnPointerEnter(PointerEventData eventData)
{
PointerEnter?.Invoke();
}
public void OnPointerExit(PointerEventData eventData)
{
PointerExit?.Invoke();
}
public void OnPointerClick(PointerEventData eventData)
{
PointerClick?.Invoke();
}
private void Reset()
{
_pointerDown ??= new UnityEvent();
_pointerUp ??= new UnityEvent();
_pointerEnter ??= new UnityEvent();
_pointerExit ??= new UnityEvent();
_pointerClick ??= new UnityEvent();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment