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

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


Paste_Image.png

这里以PointClick为例

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

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

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;
/// <summary>
/// 几种点击事件的方法
/// 这里的 添加 button事件就不写啦
/// </summary>
public class Test : MonoBehaviour,IPointerClickHandler {

void Start () {

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

    // 实例化 delegete
    trigger.triggers = new List<EventTrigger.Entry>();

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

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

}


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

}

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容