UGUI的按钮监听事件系统
2017-11-22 12:21
211 查看
using UnityEngine; using System.Collections; using UnityEngine.EventSystems; public class EventTriggerListener : UnityEngine.EventSystems.EventTrigger { public delegate void VoidDelegate(GameObject go); public VoidDelegate onClick; public VoidDelegate onDown; public VoidDelegate onEnter; public VoidDelegate onExit; public VoidDelegate onUp; public VoidDelegate onSelect; public VoidDelegate onUpdateSelect; static public EventTriggerListener Get(GameObject go) { EventTriggerListener listener = go.GetComponent<EventTriggerListener>(); if (listener == null) listener = go.AddComponent<EventTriggerListener>(); return listener; } public override void OnPointerClick(PointerEventData eventData) { if (onClick != null) onClick(gameObject); } public override void OnPointerDown(PointerEventData eventData) { if (onDown != null) onDown(gameObject); } public override void OnPointerEnter(PointerEventData eventData) { if (onEnter != null) onEnter(gameObject); } public override void OnPointerExit(PointerEventData eventData) { if (onExit != null) onExit(gameObject); } public override void OnPointerUp(PointerEventData eventData) { if (onUp != null) onUp(gameObject); } public override void OnSelect(BaseEventData eventData) { if (onSelect != null) onSelect(gameObject); } public override void OnUpdateSelected(BaseEventData eventData) { if (onUpdateSelect != null) onUpdateSelect(gameObject); } }
将以上代码放入项目中,然后在你的界面里面写入监听按钮的代码。using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using UnityEngine.Events;
public class UIMain : MonoBehaviour {
Button button;
Image image;
void Start ()
{
button = transform.Find("Button").GetComponent<Button>();
image = transform.Find("Image").GetComponent<Image>();
EventTriggerListener.Get(button.gameObject).onClick =OnButtonClick;
EventTriggerListener.Get(image.gameObject).onClick =OnButtonClick;
}
private void OnButtonClick(GameObject go){
//在这里监听按钮的点击事件
if(go == button.gameObject){
Debug.Log ("DoSomeThings");
}
}
}
相关文章推荐
- UGUI研究院之控件以及按钮的监听事件系统
- UGUI 按钮的监听事件系统
- UGUI控件之按钮的监听事件系统
- Unity3D 学习笔记8 —— UGUI控制和按钮的监听系统
- UGUI 按钮监听事件
- 按钮的监听事件系统
- android 按钮事件及监听方式
- 一步一步学android之事件篇——单选按钮监听事件
- windowbuilder01 按钮事件监听
- 【Android】使用Intent调用系统其它程序,使用onKeyDown对音量键的监听,长按事件
- Android开发20——单个监听器监听多个按钮点击事件
- 删除EditTextView光标所在位置的字符(监听系统的删除事件)
- 很多人都不知道的监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法
- Android监听系统输入法键盘弹出显示与隐藏事件
- 事件监听,按钮监听,fireEvent
- 【java】事件监听——通过点击不同的按钮,让面板的背景色发生相应的变化
- Java:简单的Swing用户界面和监听按钮点击事件
- air监听关闭按钮事件
- java在线聊天项目0.3版本 制作客户端窗体,实现发送按钮和回车发送信息功能,使用ActionListener监听事件中actionPerformed方法(用内部类和匿名内部类两种方法)