美文网首页
Unity3D 中UGUI事件系统简述及使用方法总结

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

作者: OneMore2018 | 来源:发表于2017-08-02 19:11 被阅读154次

    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的点击事件了,大家也肯定用的很熟练了。

    相关文章

      网友评论

          本文标题:Unity3D 中UGUI事件系统简述及使用方法总结

          本文链接:https://www.haomeiwen.com/subject/nfpylxtx.html