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的同步情况
目前,依靠"手工人力"的电子表格数据治理模式逐渐被"自动智能"的专业工具取代.数据管理员.业务分析师开始采用"平台工具"来梳理主数据.元数据 ...
随机推荐
- Apache RewriteHTTPToHTTPS
HTTP to HTTPS Scenario : You want to force people coming to your site to use HTTPS. Either for the e ...
- 移动web app 中的meta 标签
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scal ...
- JSON.parse
摘自:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse The J ...
- VS2013配置WTL91_5321_Final
网上关于WTL的文章,尤其是中文的文章不多,根据收集的资料整理出了VS2013安装WTL的方法. .下载.文件很小的,地址:http://sourceforge.net/projects/wtl/fi ...
- Drools规则
1.实现业务逻辑和业务规则的分离,实现业务规则的集中管理 2.可以动态的改变业务规则,从而快速响应需求变更 3.业务分析人员也可以参与编辑.维护系统的业务规则 fact:一个普通的JavaBean插入 ...
- Android IOS WebRTC 音视频开发总结(七九)-- WebRTC选择H.264的四大理由
本文主要介绍WebRTC选择H.264的理由(我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacke ...
- redis集群同步迁移方法(二):通过redis-migrate-tool实现
前篇介绍的redis replication方法,操作步骤多,而且容易出错.在git上看到一些开源工具也能实现同步迁移功能,而且步骤简单,比如redis-port,redis-migrate-tool ...
- zend framework2 下载及安装
1.安装XAMPP 2.安装zend studio 3.在GITHUB上下载一个zendframework模板,插入到IDE中 4.将下载的zend framework2文件夹解压放在vendor文件 ...
- 《CoffeeScript应用开发》学习: CoffeeScript高级用法
正确的上下文 使用胖箭头=>表示将回调函数绑定到this对象. class t func: (callback)-> if callback? setTimeout callback(), ...
- 删除注释云平台JS,加快DISCUZ访问
对于港台或者美国服务器的用户可能感觉访问慢,页面卡:实际上是由于 http://www.discuzlab.com/discuz.gtimg.cn/cloud/scripts/discuz_tip ...