Aetheria/Assets/Scripts/UI/ClickCatcher.cs

47 lines
1.1 KiB
C#
Raw Normal View History

2020-03-28 18:36:12 +00:00
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
public class ClickCatcher : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerClickHandler
{
2020-03-29 04:19:24 +01:00
//public bool EnableMouse => PointerIsInside && !_catching;
2020-03-28 18:36:12 +00:00
public bool PointerIsInside { get; private set; }
2020-03-29 04:19:24 +01:00
public event Action<PointerEventData> OnEnter;
public event Action<PointerEventData> OnExit;
public event Action<PointerEventData> OnClick;
2020-03-28 18:36:12 +00:00
public static ClickCatcher Background
{
get
{
if (_background == null)
_background = GameObject.FindGameObjectWithTag("UIBackground").GetComponent<ClickCatcher>();
return _background;
}
}
private static ClickCatcher _background;
public void OnPointerEnter(PointerEventData eventData)
{
//Debug.Log("Pointer Entered");
2020-03-29 04:19:24 +01:00
OnEnter?.Invoke(eventData);
2020-03-28 18:36:12 +00:00
PointerIsInside = true;
}
public void OnPointerExit(PointerEventData eventData)
{
//Debug.Log("Pointer Exited");
2020-03-29 04:19:24 +01:00
OnExit?.Invoke(eventData);
2020-03-28 18:36:12 +00:00
PointerIsInside = false;
}
public void OnPointerClick(PointerEventData eventData)
{
2020-03-29 04:19:24 +01:00
OnClick?.Invoke(eventData);
2020-03-28 18:36:12 +00:00
}
}