Unity Ui事件接口

在Unity中UI事件有两种方式,一种使用数据接口的方式,另一种使用监听组件的方式。

使用数据接口

通过继承数据额接口实现接口方法我们可以对Ui事件进行处理。

1
2
3
4
5
6
7
public class APanel : MonoBehaviour, IPointerClickHandler
{
public void OnPointerClick(PointerEventData eventData)
{
print("Ui被点击了");
}
}

Unity提供了各种各样的数据接口给我们使用,这里不在一一赘述。

需要注意的一点是,使用Drag类的接口时,我们必须使用Drag接口,其他的BeginDrag、EndDrag等接口才会响应。{.blue}

使用监听组件

我们最常用的监听组件是Button组件,我们可以给任意一个Ui添加一个Button组件来让Ui具有Button的效果。

在处理复杂的监听事件时,我们可以使用Event trigger组件。

Event trigger监听绑定和Button基本一致,我们可以在面板上通过拖拽来设定我们的响应事件和要触发的行为。

使用代码绑定

使用那来绑定Event Trigger的方式和Button略有不同。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
private EventTrigger _eventTrigger;
private void Awake()
{
_eventTrigger = GetComponent<EventTrigger>();

var entry=new EventTrigger.Entry(){eventID = EventTriggerType.PointerClick};

entry.callback.AddListener((a) =>
{
print("被点击了@!");
});

_eventTrigger.triggers.Add(entry);
}

我们需要使用Entry()的一个类似工厂方法的方式来创建一个回调实体,并指定事件类型。