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

# 使用数据接口

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

public class APanel : MonoBehaviour, IPointerClickHandler
    {
        public void OnPointerClick(PointerEventData eventData)
        {
            print("Ui被点击了");
        }
    }

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

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

# 使用监听组件

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

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

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

# 使用代码绑定

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

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 () 的一个类似工厂方法的方式来创建一个回调实体,并指定事件类型。

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Fasty 微信支付

微信支付

Fasty 支付宝

支付宝

Fasty 贝宝

贝宝