博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[cb]NGUI事件及复杂UI管理
阅读量:6939 次
发布时间:2019-06-27

本文共 942 字,大约阅读时间需要 3 分钟。

事件管理

看了有些文章关于NGUI的事件管理,许多人的做法的是封装一个事件处理层,避免在每个UI控件上都绑定事件处理脚本。本文说说我们项目中的UI事件管理吧。

UIEventListener

我们项目的做法是:在每一个需要进行事件处理的控件上绑定UIEventListener脚本

示例代码

复制代码
void Init(){    //方式一    var PausePanel = GetControl
("PausePanel"); PausePanel.GetComponent
().onClick = new UIEventListener.VoidDelegate((obj) => PausePanel.gameObject.SetActive(false)); //方式二 var GMBtn = GetControl
("GMBtn"); UIEventListener.get(GMbtn).onClick = GMBtnClick;}
复制代码

UI面板管理

在我们的项目中,每一个UI面板都是一个单独的Scene而不是prefab,每一个UI面板都有一个对应的Class管理类

实际使用

在cb-Art工程/Product/UI/Battle.unity [战斗界面UI],使用导出功能把UI场景打包成一个单独的Assetbundle。

在cb-Clien工程需要用到的地方 动态加载进来

在cb-Client/Code/UI/CUIBattle.cs [战斗界面UI处理],通过一个Class单独处理这个Assetbunld中加载出来的UI面板

注:每一个UI都有一个和自己名字对应的Class来处理。[eg:Home.unity->CUIHome]

优缺点

这种做法代码文件量比较大,但代码文件按面板独立便于管理,查错也更方便

UI类图

本文转自赵青青博客园博客,原文链接:http://www.cnblogs.com/zhaoqingqing/p/3860144.html,如需转载请自行联系原作者

你可能感兴趣的文章
老赵博客
查看>>
最简单的DHCP服务
查看>>
CISCO命令行配置模式
查看>>
phpQuery使用DOMDocument::loadHTML方法产生报错的处理方式
查看>>
linux 命令更换路径之后无法执行
查看>>
YUM源配置
查看>>
C++拷贝构造函数(深拷贝,浅拷贝)
查看>>
我的友情链接
查看>>
shell中变量的间接引用
查看>>
/var/目录下文件详解
查看>>
敏捷活动中的系统思考
查看>>
我的友情链接
查看>>
CentOS6.2+Kerio MailServer开源企业级邮件服务器
查看>>
做个阶段性总结[2012/10/21]
查看>>
Part07 - (图文)NSX系列之检查ESXi主机上VIBs的完整性
查看>>
【223期推荐】最有前途HIT系统评选,区域与EMR成热门!
查看>>
pyhton实现翻译
查看>>
ManagementEventWatcher and System.Management
查看>>
ssh远程控制软件的应用
查看>>
【转载】小卡片,大能量
查看>>