NGUI 按钮点击音效统一管理开启与关闭
之前就只是简单的在每个按钮(或者需要绑定单击事件的UISprite)对象上添加PlaySound组件,但这样就无法统一去设置按钮单击音效的开启与关闭!
由于我都是使用UIEventListener.Get(Button.gameObject).onClick = OnClickFunc;来为按钮绑定单击事件的,因此为了方便控制按钮音效的统一开启与关闭,我写了一个类继承UIEventListener类,然后加了静态接口GetEx来绑定单击事件(之后所有涉及到NGUI事件绑定的,都使用此类继承得来的接口Get或者新加的接口GetEx来绑定事件):
public void UIEventListenerEx : UIEventListener
{
void OnClick()
{
if (onClick != null)
{
//这里加了一个按钮音效是否开启的标志位判断
)
{
//播放按钮音效
}
//后续代码跟UIEventlistener中的基本一样
onClick(gameObject);
}
}
static public UIEventListenerEx GetEx()
{
//具体代码和UIEventListener一样,就是类名修改成UIEventListenerEx
}
}
然后所有需要单击事件的对象都使用派生类UIEventListenerEx中的GetEx接口!比如:
UIEventListenerEx.GetEx(Button.gameObject).onClick = OnClickFunc;
void OnClickFunc(GameObject go)
{
//触发了单击事件
}
为了保持接口调用一致,其他的事件(比如onPress)绑定仍然使用类UIEventListenerEx,不过是继承得来的相关委托!
另外看了一下NGUI3.6中的UIEventListener类的代码(就几行代码),里面的UIEventListener.Get()函数:如果对象上不存在UIEventListener组件,则动态添加,因此我们在编辑按钮(或者其他需要单击事件的对象)时,不需要添加UIEventListener组件!只要一调用UIEventListenerEx.GetEx()这个函数就动态为对应的对象添加UIEventListenerEx组件了!(当然了,最好游戏一启动,所有的UI事件就都绑定好,而不要到了显示某个界面才去逐一的为对象绑定事件)
end..
PS:有经验的朋友请勿喷!如果有更便捷的方法请告知,不胜感激!
如果此文帮助了你,赞一个呗,让更多人看到这个确实有用!
NGUI 按钮点击音效统一管理开启与关闭的更多相关文章
- NGUI 按钮点击事件的两种绑定形式
面板属性栏绑定 写一个脚本,定义一个Public的方法 Notify中选择物体时,选中自己 然后就可以选择通知到写的那个脚本的里边的public方法 代码绑定 创建一个代码文件,挂载到按钮对象上 代码 ...
- 阿里云DMS发布数据库网关服务: 打通网络限制 开启数据库统一管理的万能钥匙
概述 阿里云数据管理DMS在云端可提供专业的数据库服务,除对标本地数据库软件的基础功能外,还包含性能诊断.数据追踪.跨实例SQL查询(含异构数据库类型之间)等专业性功能,同时提供审计安全和企业级数据库 ...
- NGUI 按钮音效问题
昨天给NGUI的按钮添加音效时,刚开始是自己新建空对象绑定声音的,后来发现NGUI按钮携带button sound组件,直接将音效拖入即可,不用写一行代码,非常简单.但是后来发现添加相同的音效有的按钮 ...
- ngui处理不规则按钮点击
吐个槽 棋牌类游戏做什么中国地图!!! 然后就要用到不规则按钮点击了 你懂的 213的unity虽然已经加入了polygoncollider 2d的支持 但是 但是 但是 是2d的 也就是说如果不 ...
- Unity3D NGUI事件监听的综合管理
首先,将Event Listener挂在按钮上 Event Listener的源码很简单 就是利用C#的时间委托机制 注册了UI场景的事件而已 public class UIEventListener ...
- WiFi 统一管理以及设备自动化测试实践
ATX 安卓设备 WiFi 统一管理以及设备自动化测试实践 (零散知识梳理总结) 此文为转载,感谢作者 目录 众所周知,安卓单台设备的UI自动化测试已经比较完善了,有数不清的自动化框架或者工具.但 ...
- 友盟(Swift)-集成、统计用户数量、具体页面访问数量、具体按钮点击数量
什么是友盟.有什么用? 这些傻瓜问题这里就不解释了,可以自己百度去. 友盟提供的文档和demo都是oc的,这里用swift写了一个小demo,在此分享一下. 步骤1:友盟后台注册应用(iOS),拿到a ...
- jquery的2.0.3版本源码系列(6):2880-3042行,回调对象,对函数的统一管理
目录 1 . 回调对象callbacks的演示 回调的使用有一点像事件绑定,先绑定好,等到有点击事件或者其他时就触发. <script src="js/jquery-2.0.3.js& ...
- DataPipeline丨金融行业如何统一管理单个任务下所有API的同步情况
目前,依靠"手工人力"的电子表格数据治理模式逐渐被"自动智能"的专业工具取代.数据管理员.业务分析师开始采用"平台工具"来梳理主数据.元数据 ...
随机推荐
- KMS服务器激活Windows和Office2013EnterprisePlus
KMS服务器激活Windows和Office2013EnterprisePlus 参考了文档 http://wenku.baidu.com/view/0cb2602358fb770bf68a5501. ...
- Linux 任务计划
一.配置cron实现自动化 使用cron实现任务自动化可以通过修改/etc/crontab文件以及使用crontab命令实现,其结果是一样的. 1./etc/crontab文件实现自动化 cron守护 ...
- Valgrind 发现程序的内存问题
参考 : [1]. 应用 Valgrind 发现 Linux 程序的内存问题. http://www.ibm.com/developerworks/cn/linux/l-cn-valgrind/ [2 ...
- Value must be an existing directory配置tomcat问题
今天tomcat配置遇到了这么个问题,表示tomcat下少什么文件夹,一般是你的安装目录tomcat文件夹下面少了一个temp文件夹,在tomcat的安装文件夹下建一个temp文件夹再加一次tomca ...
- 判断是手机还是PC端访问
/*判断手机*/ //判断是手机浏览还是pc //平台.设备和操作系统 var system = { win: false, mac: false, xll: false, ipad: false } ...
- 头像上传,拖拽,裁切(HTML5)版本
演示地址: http://codeman35.itongyin.com:19002/v1/web_demo.html 功能: 支持滚轴放大缩小,鼠标拖动,裁切可视区域
- ue4标签测试与总结(UPROPERTY)
学习UE4框架中的标签,本篇是总结成员变量标签UPROPERTY. 引擎版本:4.12.5 前期准备: 1.新建项目,C++空模板,新建C++类,继承AActor,名称MyActor. 使用TestA ...
- js实现继承的两种方式
这是面试时面试官会经常问到问题: js的继承方式大致可分为两种:对象冒充和原型方式: 一.先说对象冒充,又可分为3种:临时属性方式.call().apply(): 1.临时属性方式: 当构造对象son ...
- Java的版本分类
J2EE (JavaEE)Java2 Enterprise Edition定位在服务器端的应用 J2SE(JavaSE)Java2 Standard Edition定位在个人计算机上的应用 J2ME( ...
- Mysql技术内幕(第四版)读书笔记(一)
题记:写代码已经有2年了,学到了很多知识,但是没有一个好习惯去记录,去分享,好多知识点都会忘记,所以从今天开始学着像大牛一样去记录自己经历项目的点点滴滴,先从最近读<Mysql技术内幕>开 ...