/* 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(); } } } }