Unity3D 中UGUI事件系统简述及使用方法总结

Unity3D的UGUI 系统将UI可能触发的事件分为12个类型,即EventTriggerType枚举的12个值
如下图:


Unity3D 中UGUI事件系统简述及使用方法总结_第1张图片
Paste_Image.png

这里以PointClick为例

方法一:继承基础接口实现

步骤1 , 创建ClickObject脚本。 继承MonoBehaviour和IPointerClickHandler.

Unity3D 中UGUI事件系统简述及使用方法总结_第2张图片
Paste_Image.png

步骤2. 实现接口方法 OnPointerClick(PointerEventData eventData) ,此处最好是pulick
步骤3. 将本脚本绑定在 ui上运行点击即可触发

方法二:程序动态设置实现
上代码

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


/// 几种点击事件的方法
/// 这里的 添加 button事件就不写啦
///

public class Test : MonoBehaviour,IPointerClickHandler {

void Start () {

    var trigger = transform.GetComponent();
    if(trigger == null)
    {
        trigger = transform.gameObject.AddComponent();
    }

    // 实例化 delegete
    trigger.triggers = new List();

    // 定义需要绑定的事件类型。  并设置回调函数
    EventTrigger.Entry entry = new EventTrigger.Entry();
    // 设置事件类型
    entry.eventID = EventTriggerType.PointerClick;
    // 设置回调函数
    entry.callback = new EventTrigger.TriggerEvent();
    UnityAction callback = new UnityAction(OnScriptControll);  // 带参

    entry.callback.AddListener(callback);
    trigger.triggers.Add(entry);

}


void OnScriptControll(BaseEventData data)
{
    Debug.Log(2222);
}

}

在这里等注意,要使用UI事件, 等添加UnityEngine.EventSystems引用空间, 要使用unity事件 ,等添加UnityEngine.Events引用空间

ok完事, 这里就不再写动态添加button的点击事件了,大家也肯定用的很熟练了。

你可能感兴趣的:(Unity3D 中UGUI事件系统简述及使用方法总结)