事件接口
将含改代码的脚本挂到UI上,可实现相应效果
第一种写法
using UnityEngine;
using UnityEngine.EventSystems;
public class Juse : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler,IPointerClickHandler,IPointerDownHandler,IPointerUpHandler
{
public void OnPointerClick(PointerEventData eventData)
{
Debug.Log("Click");
}
public void OnPointerDown(PointerEventData eventData)
{
Debug.Log("Down");
}
public void OnPointerUp(PointerEventData eventData)
{
Debug.Log("Up");
}
public void OnPointerEnter(PointerEventData eventData)
{
Debug.Log("Enter");
}
public void OnPointerExit(PointerEventData eventData)
{
Debug.Log("Exit");
}
}
第二种写法
using UnityEngine;
using UnityEngine.EventSystems;
public class Juse : EventTrigger
{
public override void OnBeginDrag(PointerEventData data)
{
Debug.Log("OnBeginDrag called.");
}
public override void OnCancel(BaseEventData data)
{
Debug.Log("OnCancel called.");
}
public override void OnDeselect(BaseEventData data)
{
Debug.Log("OnDeselect called.");
}
public override void OnDrag(PointerEventData data)
{
Debug.Log("OnDrag called.");
}
public override void OnDrop(PointerEventData data)
{
Debug.Log("OnDrop called.");
}
public override void OnEndDrag(PointerEventData data)
{
Debug.Log("OnEndDrag called.");
}
public override void OnInitializePotentialDrag(PointerEventData data)
{
Debug.Log("OnInitializePotentialDrag called.");
}
public override void OnMove(AxisEventData data)
{
Debug.Log("OnMove called.");
}
public override void OnPointerClick(PointerEventData data)
{
Debug.Log("OnPointerClick called.");
}
public override void OnPointerDown(PointerEventData data)
{
Debug.Log("OnPointerDown called.");
}
public override void OnPointerEnter(PointerEventData data)
{
Debug.Log("OnPointerEnter called.");
}
public override void OnPointerExit(PointerEventData data)
{
Debug.Log("OnPointerExit called.");
}
public override void OnPointerUp(PointerEventData data)
{
Debug.Log("OnPointerUp called.");
}
public override void OnScroll(PointerEventData data)
{
Debug.Log("OnScroll called.");
}
public override void OnSelect(BaseEventData data)
{
Debug.Log("OnSelect called.");
}
public override void OnSubmit(BaseEventData data)
{
Debug.Log("OnSubmit called.");
}
public override void OnUpdateSelected(BaseEventData data)
{
Debug.Log("OnUpdateSelected called.");
}
}
第三种写法
using UnityEngine;
using UnityEngine.EventSystems;
public class Juse : EventTrigger
{
void Start()
{
EventTrigger trigger = GetComponent<EventTrigger>();
EventTrigger.Entry entry = new EventTrigger.Entry();
entry.eventID = EventTriggerType.PointerDown;
entry.callback.AddListener((data) => { OnPointerDownDelegate((PointerEventData)data); });
trigger.triggers.Add(entry);
}
public void OnPointerDownDelegate(PointerEventData data)
{
Debug.Log("OnPointerDownDelegate called.");
}
}
也可以通过添加EventTrigger组件来调用有关函数。

浙公网安备 33010602011771号