private void Awake()
{
EventListenerEx.Get(this.gameObject).onUp += OnBtnUp;
EventListenerEx.Get(this.gameObject).onDown += OnBtnDown;
}
void OnBtnUp(GameObject go)
{
// 抬起btn
}
void OnBtnDown(GameObject go)
{
// 按下btn
}
EventListerEx,还有其他监听事件,用的时候,自己加吧。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class EventListenerEx : EventTrigger
{
public delegate void VoidDelegate(GameObject go);
public VoidDelegate onClick;
public VoidDelegate onDown;
public VoidDelegate onEnter;
public VoidDelegate onExit;
public VoidDelegate onUp;
public VoidDelegate onSelect;
public VoidDelegate onUpdateSelect;
static public EventListenerEx Get(GameObject go)
{
EventListenerEx listener = go.GetComponent<EventListenerEx>();
if (listener == null) listener = go.AddComponent<EventListenerEx>();
return listener;
}
public override void OnPointerClick(PointerEventData eventData)
{
if (onClick != null) onClick(gameObject);
}
public override void OnPointerDown(PointerEventData eventData)
{
if (onDown != null) onDown(gameObject);
}
public override void OnPointerEnter(PointerEventData eventData)
{
if (onEnter != null) onEnter(gameObject);
}
public override void OnPointerExit(PointerEventData eventData)
{
if (onExit != null) onExit(gameObject);
}
public override void OnPointerUp(PointerEventData eventData)
{
if (onUp != null) onUp(gameObject);
}
public override void OnSelect(BaseEventData eventData)
{
if (onSelect != null) onSelect(gameObject);
}
public override void OnUpdateSelected(BaseEventData eventData)
{
if (onUpdateSelect != null) onUpdateSelect(gameObject);
}
}