[cb]NGUI事件及复杂UI管理

简介:



事件管理

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

UIEventListener

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

示例代码

复制代码
void Init()
{
    //方式一
    var PausePanel = GetControl<Gameobject>("PausePanel");
    PausePanel.GetComponent<UIEventListener>().onClick = new UIEventListener.VoidDelegate((obj) => PausePanel.gameObject.SetActive(false));
    //方式二
    var GMBtn = GetControl<Gameobject>("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类图

CUIBase

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


相关文章
|
1月前
|
搜索推荐 BI 开发者
sap.ui.comp.smarttable.SmartTable 组件 beforeRebindTable 事件的用法
sap.ui.comp.smarttable.SmartTable 组件 beforeRebindTable 事件的用法
|
1月前
|
JavaScript
Vue给Element UI的el-popconfirm绑定按钮事件
Vue给Element UI的el-popconfirm绑定按钮事件
|
7月前
|
JavaScript 前端开发 开发工具
基于 Vue3.0 和 Ant Design Vue ,高颜值管理后台UI框架vue-vben-admin运行
基于 Vue3.0 和 Ant Design Vue ,高颜值管理后台UI框架vue-vben-admin运行
205 1
|
1月前
使用element clickoutside自定义指令事件,点击元素外部触发(element-ui/src/utils/clickoutside)
使用element clickoutside自定义指令事件,点击元素外部触发(element-ui/src/utils/clickoutside)
|
1月前
|
Kubernetes Oracle 关系型数据库
实时计算 Flink版产品使用合集之web ui能否在线管理数据source和处理数据
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
10月前
|
JavaScript 前端开发
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能5
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能5
33 0
|
8月前
|
XML 数据格式
关于 SAP UI5 XML 视图里控件事件处理函数名称中的 . (点号) 问题的讨论试读版
关于 SAP UI5 XML 视图里控件事件处理函数名称中的 . (点号) 问题的讨论试读版
|
10月前
|
JavaScript 前端开发
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能4
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能4
30 0
|
10月前
|
JavaScript 前端开发
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能5
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能5
36 0
|
10月前
|
JavaScript 前端开发
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能3
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能3
36 0