/*
http://www.cgsoso.com/forum-211-1.html
CG搜搜 Unity3d 每日Unity3d插件免费更新 更有VIP资源!
CGSOSO 主打游戏开发,影视设计等CG资源素材。
插件如若商用,请务必官网购买!
daily assets update for try.
U should buy the asset from home store if u use it in your project!
*/
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
namespace MS
{
public class PointerEvent : MonoBehaviour, IPointerClickHandler, IPointerDownHandler, IPointerUpHandler, IPointerEnterHandler, IPointerExitHandler, IEventSystemHandler
{
[Header("Pointer Enter")]
public UnityEvent onEnter;
[Header("Pointer Hover")]
public UnityEvent onHover;
[Header("Pointer Exit")]
public UnityEvent onExit;
[Header("Pointer Up Event")]
public UnityEvent onLeftUp;
public UnityEvent onRightUp;
[Header("Pointer Donw Event")]
public UnityEvent onLeftDown;
public UnityEvent onRightDown;
[Header("Pointer Click Event")]
public UnityEvent onLeftClick;
public UnityEvent onRightClick;
private bool isHover;
public void OnPointerUp(PointerEventData eventData)
{
if (eventData.button == PointerEventData.InputButton.Left)
{
onLeftUp.Invoke();
}
if (eventData.button == PointerEventData.InputButton.Right)
{
onRightUp.Invoke();
}
}
public void OnPointerDown(PointerEventData eventData)
{
if (eventData.button == PointerEventData.InputButton.Left)
{
onLeftDown.Invoke();
}
if (eventData.button == PointerEventData.InputButton.Right)
{
onRightDown.Invoke();
}
}
public void OnPointerClick(PointerEventData eventData)
{
if (eventData.button == PointerEventData.InputButton.Left)
{
onLeftClick.Invoke();
}
if (eventData.button == PointerEventData.InputButton.Right)
{
onRightClick.Invoke();
}
}
public void OnPointerEnter(PointerEventData eventData)
{
onEnter.Invoke();
isHover = true;
}
public void OnPointerExit(PointerEventData eventData)
{
onExit.Invoke();
isHover = false;
}
private void FixedUpdate()
{
if (isHover)
{
onHover.Invoke();
}
}
}
}