using System;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
/// <summary>
/// 简化型EventTrigger
/// </summary>
public class EventTriggerListener : EventTrigger
{
public Action onClick = null;
public Action onDown = null;
public Action onEnter = null;
public Action onExit = null;
public Action onUp = null;
public Action onDrag = null;
public Action onBeginDrag = null;
public Action onEndDrag = null;
public Action onCancel = null;
static public EventTriggerListener Get(Graphic r_graphic)
{
if (r_graphic != null)
{
return Get(r_graphic.gameObject);
}
return null;
}
static public EventTriggerListener Get(GameObject r_go)
{
if (r_go != null)
{
EventTriggerListener listener = r_go.GetComponent<EventTriggerListener>();
if (listener == null)
{
listener = r_go.AddComponent<EventTriggerListener>();
}
return listener;
}
return null;
}
public void Clear()
{
this.onClick = null;
this.onDown = null;
this.onEnter = null;
this.onExit = null;
this.onUp = null;
this.onDrag = null;
this.onBeginDrag = null;
this.onEndDrag = null;
this.onCancel = null;
}
public override void OnCancel(BaseEventData eventData)
{
onCancel?.Invoke();
}
public override void OnPointerClick(PointerEventData r_eventData)
{
onClick?.Invoke();
}
public override void OnPointerDown(PointerEventData r_eventData)
{
onDown?.Invoke();
}
public override void OnPointerEnter(PointerEventData r_eventData)
{
onEnter?.Invoke();
}
public override void OnPointerExit(PointerEventData r_eventData)
{
onExit?.Invoke();
}
public override void OnPointerUp(PointerEventData r_eventData)
{
onUp?.Invoke();
}
public override void OnBeginDrag(PointerEventData r_eventData)
{
base.OnBeginDrag(r_eventData);
onBeginDrag?.Invoke();
}
public override void OnDrag(PointerEventData eventData)
{
base.OnDrag(eventData);
onDrag?.Invoke();
}
public override void OnEndDrag(PointerEventData eventData)
{
base.OnEndDrag(eventData);
onEndDrag?.Invoke();
}
}
unity的简化型EventTrigger
最新推荐文章于 2024-03-27 11:22:02 发布