我们可以使用代码方式,在代码内实现一些UI事件的操作,重写UI事件接口内的方法体逻辑; 也可以在面板上直接进行操作,这样的话就需要用到EventTrigger 组件。 建议用代码方式控制,在面板上操作容易出错,而且不方便。 EventTrigger 组件: 1.使用步骤 ①首先给需要添加事件的UI 物体添加EventTrigger 组件; ②点击“Add New Event Type”,添加一个新的事件; ③脚本内添加对应的事件处理方法,拖拽到指定的事件面板位置。 [

](http://www.wjgbaby.com/wp-content/uploads/2017/12/17123103-207x300.png)
](http://www.wjgbaby.com/wp-content/uploads/2017/12/17123103-207x300.png)
2.注意事项 ①在代码中接口实现的方式,重写的方法参数都是:PointerEventData 类型; 但是往EventTrigger 上拖拽的方法必须是BaseEventData 类型,或者空。 ②当用PointerEventData 中的属性的时候,需要进行类型的强转。 案例: 新建一个Image,加入EventTrigger 组件,添加一些事件,Pointer脚本如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System;

public class Pointer : MonoBehaviour{

public void OnPointerEnter(BaseEventData eventData)
{
    Debug.Log("指针进入");
}

public void OnPointerExit(BaseEventData eventData)
{
    Debug.Log("指针离开");
}

public void OnPointerDown(BaseEventData eventData)
{
    Debug.Log("指针按下");
}

public void OnPointerUp(BaseEventData eventData)
{
    Debug.Log("指针抬起");
}

public void OnPointerClick(BaseEventData eventData)
{
    Debug.Log("指针单击");
}

}

运行结果:[

](http://www.wjgbaby.com/wp-content/uploads/2017/12/17123104-300x142.jpg)
](http://www.wjgbaby.com/wp-content/uploads/2017/12/17123104-300x142.jpg)