UGUI之控件以及按钮的监听事件系统
2023-09-14 08:57:46 时间
1 using UnityEngine; 2 using System.Collections; 3 using UnityEngine.EventSystems; 4 public class EventTriggerListener : UnityEngine.EventSystems.EventTrigger{ 5 public delegate void VoidDelegate (GameObject go); 6 public VoidDelegate onClick; 7 public VoidDelegate onDown; 8 public VoidDelegate onEnter; 9 public VoidDelegate onExit; 10 public VoidDelegate onUp; 11 public VoidDelegate onSelect; 12 public VoidDelegate onUpdateSelect; 13 14 static public EventTriggerListener Get (GameObject go) 15 { 16 EventTriggerListener listener = go.GetComponent<EventTriggerListener>(); 17 if (listener == null) listener = go.AddComponent<EventTriggerListener>(); 18 return listener; 19 } 20 public override void OnPointerClick(PointerEventData eventData) 21 { 22 if(onClick != null) onClick(gameObject); 23 } 24 public override void OnPointerDown (PointerEventData eventData){ 25 if(onDown != null) onDown(gameObject); 26 } 27 public override void OnPointerEnter (PointerEventData eventData){ 28 if(onEnter != null) onEnter(gameObject); 29 } 30 public override void OnPointerExit (PointerEventData eventData){ 31 if(onExit != null) onExit(gameObject); 32 } 33 public override void OnPointerUp (PointerEventData eventData){ 34 if(onUp != null) onUp(gameObject); 35 } 36 public override void OnSelect (BaseEventData eventData){ 37 if(onSelect != null) onSelect(gameObject); 38 } 39 public override void OnUpdateSelected (BaseEventData eventData){ 40 if(onUpdateSelect != null) onUpdateSelect(gameObject); 41 } 42 }
1 using UnityEngine; 2 using System.Collections; 3 using UnityEngine.UI; 4 using UnityEngine.EventSystems; 5 using UnityEngine.Events; 6 public class UIMain : MonoBehaviour { 7 Button button; 8 Image image; 9 void Start () 10 { 11 button = transform.Find("Button").GetComponent<Button>(); 12 image = transform.Find("Image").GetComponent<Image>(); 13 EventTriggerListener.Get(button.gameObject).onClick =OnButtonClick; 14 EventTriggerListener.Get(image.gameObject).onClick =OnButtonClick; 15 } 16 17 private void OnButtonClick(GameObject go){ 18 //在这里监听按钮的点击事件 19 if(go == button.gameObject){ 20 Debug.Log ("DoSomeThings"); 21 } 22 } 23 }
相关文章
- 历史十大黑客事件:不堪一击的系统
- Lite OS学习之事件EVENT
- 概率论快速学习04:概率公理 全概率 贝叶斯 事件独立性
- 事件总线 + 函数计算构建云上最佳事件驱动架构应用
- 通过在xml布局文件中设置android:onClick=""来实现组件单击事件
- 查看系统关机事件
- JAVA事件监听机制学习
- 原 JS监听回车事件
- vue事件修饰符:通过@click.capture捕获内层事件(爷爷-父亲-儿子)
- kbone 高级 - 事件系统
- Atitit mvc之道 attilax著 以vue为例 1. Atitti vue的几大概念1 1.1. 声明式渲染1 1.2. 条件与循环2 1.3. 处理用户输入 click事件2 1
- 从源码分析DEARGUI之键盘鼠标事件监控
- Android模拟、实现、触发系统按键事件的方法
- QT---事件系统
- LabVIEW使用事件结构注册多个事件
- e859. 将键盘事件和字符串对应
- WPF路由事件二:路由事件的三种策略
- C# 查询所有设备的插拔事件
- 2021 第五届“达观杯” 基于大规模预训练模型的风险事件标签识别】3 Bert和Nezha方案
- 【微信小程序】一文带你吃透小程序开发框架——视图层中的事件系统