using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; public class EventSystemHandler : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IDragHandler, IPointerExitHandler { // public bool MouseOnly = false; [System.Serializable] public class PointerEvent : UnityEvent { }; public PointerEvent onPointerDown = new PointerEvent(); public PointerEvent onPointerUp = new PointerEvent(); public PointerEvent onPointerDrag = new PointerEvent(); public PointerEvent onPointerExit = new PointerEvent(); public void OnPointerDown(PointerEventData eventData) { LogPointerEvent(eventData); onPointerDown.Invoke(eventData); } public void OnPointerUp(PointerEventData eventData) { LogPointerEvent(eventData); onPointerUp.Invoke(eventData); } public void OnDrag(PointerEventData eventData) { LogPointerEvent(eventData); onPointerDrag.Invoke(eventData); } public void OnPointerExit(PointerEventData eventData) { LogPointerEvent(eventData); // if (skip_on_mouse_only(eventData)) // return; onPointerExit.Invoke(eventData); } void LogPointerEvent(PointerEventData eventData) { // Debug.Log(eventData); } // private bool skip_on_mouse_only(PointerEventData eventData) // { // return MouseOnly && eventData.pointerId != -1; // } }