UGUI的鼠標(biāo)事件:EventTrigger
自己寫一個(gè)幫助類,便于調(diào)用(用回調(diào),對相應(yīng)鼠標(biāo)事件添加事件,方便書寫)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
/// <summary>
/// 鼠標(biāo)事件監(jiān)聽
/// </summary>
public class UIEventListener :? EventTrigger
{
? ? public delegate void PointerEventDelegate(PointerEventData eventData);
? ? public PointerEventDelegate PointerEnterEvent;
? ? public PointerEventDelegate PointerExitEvent;
? ? public PointerEventDelegate PointerClickEvent;
? ? public PointerEventDelegate PointerDownEvent;
? ? public PointerEventDelegate PointerUpEvent;
? ? public PointerEventDelegate BeginDragEvent;
? ? public PointerEventDelegate OnDragEvent;
? ? public PointerEventDelegate EndDragEvent;
? ? public static UIEventListener GetEventListener(GameObject item)
? ? {
? ? ? ? UIEventListener uIEvent = null;
? ? ? ? if (item != null)
? ? ? ? {
? ? ? ? ? ? uIEvent = item.AddComponent<UIEventListener>();
? ? ? ? }
? ? ? ? return uIEvent;
? ? }
? ? /// <summary>
? ? /// 鼠標(biāo)劃入
? ? /// </summary>
? ? /// <param name="eventData"></param>
? ? public override void OnPointerEnter(PointerEventData eventData)
? ? {
? ? ? ? base.OnPointerEnter(eventData);
? ? ? ? PointerEnterEvent?.Invoke(eventData);
? ? }
? ? /// <summary>
? ? /// 鼠標(biāo)移出
? ? /// </summary>
? ? /// <param name="eventData"></param>
? ? public override void OnPointerExit(PointerEventData eventData)
? ? {
? ? ? ? base.OnPointerExit(eventData);
? ? ? ? PointerExitEvent?.Invoke(eventData);
? ? }
? ? /// <summary>
? ? /// 鼠標(biāo)點(diǎn)擊
? ? /// </summary>
? ? /// <param name="eventData"></param>
? ? public override void OnPointerClick(PointerEventData eventData)
? ? {
? ? ? ? base.OnPointerClick(eventData);
? ? ? ? PointerClickEvent?.Invoke(eventData);
? ? }
? ? /// <summary>
? ? /// 鼠標(biāo)抬起
? ? /// </summary>
? ? /// <param name="eventData"></param>
? ? public override void OnPointerDown(PointerEventData eventData)
? ? {
? ? ? ? base.OnPointerDown(eventData);
? ? ? ? PointerDownEvent?.Invoke(eventData);
? ? }
? ? /// <summary>
? ? /// 鼠標(biāo)抬起
? ? /// </summary>
? ? /// <param name="eventData"></param>
? ? public override void OnPointerUp(PointerEventData eventData)
? ? {
? ? ? ? base.OnPointerUp(eventData);
? ? ? ? PointerUpEvent?.Invoke(eventData);
? ? }
? ? /// <summary>
? ? /// 開始拖拽
? ? /// </summary>
? ? /// <param name="eventData"></param>
? ? public override void OnBeginDrag(PointerEventData eventData)
? ? {
? ? ? ? base.OnBeginDrag(eventData);
? ? ? ? BeginDragEvent?.Invoke(eventData);
? ? }
? ? /// <summary>
? ? /// 拖拽中
? ? /// </summary>
? ? /// <param name="eventData"></param>
? ? public override void OnDrag(PointerEventData eventData)
? ? {
? ? ? ? base.OnDrag(eventData);
? ? ? ? OnDragEvent?.Invoke(eventData);
? ? }
? ? /// <summary>
? ? /// 拖拽結(jié)束
? ? /// </summary>
? ? /// <param name="eventData"></param>
? ? public override void OnEndDrag(PointerEventData eventData)
? ? {
? ? ? ? base.OnEndDrag(eventData);
? ? ? ? EndDragEvent?.Invoke(eventData);
? ? }
}