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

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

Unity3D|Unity3D 中UGUI事件系统简述及使用方法总结
文章图片
Paste_Image.png 这里以PointClick为例
方法一:继承基础接口实现
步骤1 , 创建ClickObject脚本。 继承MonoBehaviour和IPointerClickHandler.
Unity3D|Unity3D 中UGUI事件系统简述及使用方法总结
文章图片
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引用空间
【Unity3D|Unity3D 中UGUI事件系统简述及使用方法总结】ok完事, 这里就不再写动态添加button的点击事件了,大家也肯定用的很熟练了。

    推荐阅读