首页 > 代码库 > [cb]NGUI事件管理
[cb]NGUI事件管理
看了许多的文章都有讲到关于NGUI的事件管理,许多人的做法的是封装一个事件处理层,避免在每个UI控件上都绑定事件处理脚本。我们项目的做法是:在每一个需要进行事件处理的控件上绑定UIEventListener脚本
然后每一个UI采用一个Scene,每一个UI对应一个CUI的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]
例如:
void Init()
{
PausePanel.GetComponent<UIEventListener>().onClick = new UIEventListener.VoidDelegate((obj) => PausePanel.gameObject.SetActive(false));
GMBtn = GetControl<UIButton>("GMBtn");
GMBtn.GetComponent<UIEventListener>().onClick = GMBtnClick;
}
这种做法代码文件量比较大,但代码比较好管理,UI查错也更方便
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。