UGUI控件之按钮的监听事件系统
来源:互联网 发布:淘宝电子面单打印教程 编辑:程序博客网 时间:2024/06/01 09:35
/** * 事件监听实现; * 摘自: http://www.xuanyusong.com/archives/3325 */using UnityEngine;using System.Collections;using UnityEngine.EventSystems;using UnityEngine.UI;//FENGTODO//无参数public delegate void Callback();//一个参数public delegate void Callback<T>(T arg1);//两个参数public delegate void Callback<T, U>(T arg1, U arg2);//三个参数public delegate void Callback<T, U, V>(T arg1, U arg2, V arg3);//四个public delegate void Callback<T, U, V, Y>(T arg1, U arg2, V arg3, Y arg4);public class EventTriggerListener : MonoBehaviour, IPointerClickHandler, IPointerDownHandler, IPointerEnterHandler,IPointerExitHandler, IPointerUpHandler, ISelectHandler, IUpdateSelectedHandler{ public delegate void VoidDelegate(GameObject go); public delegate void VoideDeleagte2(GameObject go2, PointerEventData eventData); public VoidDelegate onClick; public VoidDelegate onDown; public VoidDelegate onEnter; public VoidDelegate onExit; public VoidDelegate onUp; public VoidDelegate onSelect; public VoidDelegate onUpdateSelect; public VoideDeleagte2 onClick2; public Callback ClickCallback; static public EventTriggerListener Get(GameObject go) { EventTriggerListener listener = go.GetComponent<EventTriggerListener>(); if (listener == null) { listener = go.AddComponent<EventTriggerListener>(); } return listener; } public void OnPointerClick(PointerEventData eventData) { if (onClick != null) { if (ClickCallback != null) { ClickCallback(); //ClickCallback = null; } else { } onClick(gameObject); //if (AudioHelper.instance != null) //{ // AudioHelper.instance.PlayVoice(VoiceType.Button_Click); //} } else if (onClick2 != null) { onClick2(gameObject, eventData); } } public void OnPointerDown(PointerEventData eventData) { if (onDown != null) { onDown(gameObject); } } public void OnPointerEnter(PointerEventData eventData) { if (onEnter != null) { onEnter(gameObject); } } public void OnPointerExit(PointerEventData eventData) { if (onExit != null) { onExit(gameObject); } } public void OnPointerUp(PointerEventData eventData) { if (onUp != null) { onUp(gameObject); } } public void OnSelect(BaseEventData eventData) { if (onSelect != null) { onSelect(gameObject); } } public void OnUpdateSelected(BaseEventData eventData) { if (onUpdateSelect != null) { onUpdateSelect(gameObject); } }}
0 0
- UGUI控件之按钮的监听事件系统
- UGUI 按钮的监听事件系统
- UGUI的按钮监听事件系统
- UGUI的按钮监听事件
- UGUI 按钮监听事件
- 【Unity3D ugui】简单控件的事件监听
- 【UGUI】UGUI的事件监听
- 按钮的监听事件系统
- Unity3D的ugui之按钮事件
- UGUI的事件监听机制
- UGUI事件的系统
- 在页面中监听用户控件的按钮点击事件
- Unity3D 学习笔记8 —— UGUI控制和按钮的监听系统
- UGUI Toggle的监听事件绑定
- UGUI-仿照NGUI的事件监听机制
- uGUI事件监听
- UGUI事件监听总结
- [UnityUI]UGUI的事件系统
- 深入理解java虚拟机-读书笔记8-线程安全与锁优化
- Nexus 6 系统编译
- Android对接微信SDK 续二
- Android 从0开始自定义控件之 ViewRoot 与 DecorView (五)
- 南邮微机实验(设计定时器)
- UGUI控件之按钮的监听事件系统
- SpringMVC前后端传值方式
- VPN虚拟专用网
- 服务器与客户端的模型之select的多路转接
- 嵌入式Linux菜鸟学习之路
- 二手电脑与Ubuntu的经历-0-ReadMe
- 摘要与细节
- 小菜鸟论网络协议
- Adroid Studio基于TCP协议的通信