在我们的Unity游戏项目中,GUI的表现采用NGUI。记录一下我们的处理方式:

需要解决的问题

1、需要处理大量按钮的点击事件

2、需要处理界面跳转事件

3、需要处理界面元素更新事件

解决方案

GUIClickEventReceiver

解决按钮点击事件

GUIManager

管理GUI的跳转与更新

具体实现

Inspector选择事件

在编辑器中为按钮选择点击事件

事件代码结构

主要逻辑

public void OnClick (){bool playSoundEffect = true;switch (clickType) {case ClickType.StartGame:GameManager.instance.startGame ();break;case ClickType.Store:GUIManager.instance.showGUI (GUIState.Store);break;case ClickType.Stats:GUIManager.instance.showGUI (GUIState.Stats);break;case ClickType.DoubleCoinUpgrade:GameManager.instance.upgradePowerUp (PowerUpTypes.DoubleCoin);break;case ClickType.CoinMagnetUpgrade:GameManager.instance.upgradePowerUp (PowerUpTypes.CoinMagnet);break;case ClickType.InvincibilityUpgrade:GameManager.instance.upgradePowerUp (PowerUpTypes.Invincibility);break;case ClickType.AddSpeedUpgrade:GameManager.instance.upgradePowerUp (PowerUpTypes.AddSpeed);break;case ClickType.ProtectionCoverUpgrade:GameManager.instance.upgradePowerUp(PowerUpTypes.ProtectionCover);break;case ClickType.AttackGunUpgrade:GameManager.instance.upgradePowerUp(PowerUpTypes.AttackGun);break;case ClickType.EndGame:GUIManager.instance.showGUI (GUIState.EndGame);break;case ClickType.Restart:GameManager.instance.restartGame (true);break;case ClickType.MainMenu:GameManager.instance.backToMainMenu (false);break;case ClickType.MainMenuRestart:GameManager.instance.backToMainMenu (true);break;case ClickType.Pause:GameManager.instance.pauseGame (true);playSoundEffect = false;break;case ClickType.Resume:GameManager.instance.pauseGame (false);break;case ClickType.ToggleTutorial:GameManager.instance.toggleTutorial ();break;case ClickType.Missions:GUIManager.instance.showGUI (GUIState.Missions);break;}if (playSoundEffect)AudioManager.instance.playSoundEffect (SoundEffects.GUITapSoundEffect);}

[3D跑酷] UI事件处理系统相关推荐

  1. 3D跑酷类小游戏开发实战

    今天,带领大家从零开始开发一款完整的3D跑酷类小游戏,主要面向有一定Egret2D开发经验的小伙伴,手把手教你学习EgretPro开发,快速开启您的EgretPro开发之旅. 下面是整个游戏的制作过程 ...

  2. 视频教程-从零开始开发3D跑酷游戏教程-Unity3D

    从零开始开发3D跑酷游戏教程 从业8年以上,学过一点知识,写过一点代码,擅长计算机图形学,擅长unity3d,擅长将抽象的东西讲明白,写看得懂的代码,讲听得懂的课程,不闲聊,不扯淡,满满的干货 洪青霞 ...

  3. 从零开始开发3D跑酷游戏教程-洪青霞-专题视频课程

    从零开始开发3D跑酷游戏教程-1425人已学习 课程介绍         从零开发3D跑酷游戏视频培训课程,教大家从零开始开发一个3D跑酷游戏,涵盖了手势识别.动画系统.水平控制.纵向控制.金币获取. ...

  4. 视频教程 | 3D 跑酷小游戏实战开发(下)

    上篇内容我们发布了 <视频教程 | 3D 跑酷小游戏实战开发(上)>,讲述了概述及创建.跑道创建.添加主角,今天我们继续学习:添加金币.处理碰撞.添加UI界面. 通过今天的学习,相信大家可 ...

  5. UI设计培训之UI设计系统知识

    最近有很多小伙伴都在学习UI设计的相关知识,很多同学都是东边一学习一下,西边学习一下,根本没有明确的学习方法,对于这个问题小编为大家整理了一下学习UI设计的系统知识,一起看看吧! UI设计培训之UI设 ...

  6. 计算机组成原理实验认识多思网络虚拟实验系统_3D全息投影,裸眼3D,全息互动投影系统...

    虚拟仿真(Virtual Reality)是用虚拟系统模仿真实系统的技术,是一种可创建和体验虚拟世界(Virtual World)的计算机系统.伴随着教育信息化进程的推进,VR/AR技术正在潜移默化地 ...

  7. 事件处理-注册时间 // 事件处理-修饰符 // 事件处理-键盘事件的修饰符 // 事件处理-系统修饰符 // 事件处理-鼠标修饰符

    事件处理-注册事件 <!DOCTYPE html> <html lang="en"><head><meta charset="U ...

  8. 一种基于UE4平台多人交互3D家装设计系统及使用方法与流程

    本发明涉及一种基于UE4平台多人交互3D家装设计系统及使用方法,属虚拟现实技术领域. 背景技术: 目前随着虚拟现实技术的飞速发展,当前在进行家装实际工作中,为了提高设计方案对用户展示的便捷性和准确性, ...

  9. 2022-2028全球与中国3D视觉引导机器人系统市场现状及未来发展趋势

    2021年全球3D视觉引导机器人系统市场销售额达到了 亿美元,预计2028年将达到 亿美元,年复合增长率(CAGR)为 %(2022-2028).地区层面来看,中国市场在过去几年变化较快,2021年市 ...

最新文章

  1. 【经典】javascript ES5原生实现考试题答案全排列组合数组结果获取
  2. idae 格式化代码 设置eslint_vscode 中格式化代码[vue2支持,插件ESLint、Prettier、Vetur]...
  3. C++标准模板库(STL)的概念
  4. Qt for Android调用Android接口将程序移到后台/前台运行
  5. JavaScript 复习之 事件模型 和 Event对象
  6. 接到骗子短信后........
  7. fastDFS 命令笔记
  8. serialize()与unserialize()
  9. 对DataGridView中的DataGridViewComboBoxColumn有了一点点体会
  10. mysql 5.7.11 压缩包安装办法遇到故障后彻底卸载办法
  11. 文本文件中,如何判断有效换行?
  12. matlab 最小二乘法拟合_最小二乘法辨识1阶离散传递函数
  13. 34.在排序数组中查找元素的第一个和最后一个位置(力扣leetcode) 博主可答疑该问题
  14. Jave2-Java音频视频编码器
  15. linux 下查看文件字符编码和转换编码 360doc,Linux 下查看文件字符编码和转换编码...
  16. 明尼苏达量表结果分析_明尼苏达满意度量表的指标
  17. a-upload文件夹上传
  18. Ubuntu18.04 安装最新版WPS
  19. python杨辉三角居中_利用python打印杨辉三角
  20. (vue)vue导出excel文件打不开,或者文件内容为object object

热门文章

  1. C++/Qt框架下的简易计算器
  2. catia 摆正点云的方法_catia点云
  3. Kotlin语言现在怎么不火了?
  4. java连接海康摄像头_Java实现 海康摄像头抓拍图像
  5. 智慧农业发展,商业计划书撰写,商业模式,ppt亮点
  6. html怎么设置竖线符号,竖线符号怎么打【运用方式】
  7. 冒泡排序 以及利用函数升序 降序
  8. 1602实现计算机实验报告,1602实验报告资料.doc
  9. esp8266+arduino IDE+阿里云IOT+萤石云=远程视频遥控车(一)
  10. NSArray与NSPredicate使用