有通用的框架,可加快开发进度和提高代码质量,让新人也能很好完成任务;
2、UI的定义:人机交互,直接影响玩家体验,所以必须做得卓越;
它是数据的可视化表现,采用“基于数据的编程”;
UI卓越=代码好+数据表现正确+界面美观+操作感好+操作流畅;
内容:管理所有View:GUIManager类+BasePanel类;
每个独立功能模块,推荐使用MVC架构;
UI通用工厂:界面、组件、功能接口;
UI性能优化;
历史UI栈、UI分层管理、适配、UI统一规范;
3、数据的管理
三种数据:配表、网络协议数据、临时数据(界面、或模块内产生的);
作为MVC架构的一员,通常用类来封装;
UI只是数据的可视化而已,一切UI操作都围绕它们进行;
4、(一)统一管理所有View:GUIManager类+BasePanel类
GUIManager类是个单例,它有大量成员变量,可记录一些状态信息(使用“基于状态机”的编程);每个View的行为都会影响到BasePanel类,而在BasePanel内部调用GUIManager的接口,
这样就可以通过GUIManager记录所有UI状态并管理它们,例如curPanel_id, lastPanel_id等;
5、(二)UI工具类、工具函数封装
1)应该有guiToos目录,封装了一些类、函数,方便快速代码迭代
2)内容:适配、UI分层
6、(三)MVC架构
M:类封装,该类定义了数据结构、数据的处理(增删查改);
类的子对象保存到Controller里;
临时数据可直接保存在对应View类里;
V:每个Panel封装为一个类,管理该界面的一切逻辑;
建议封装一个BasePanel类,所有界面都继承它
C:对内管理整个模块运作,有M、V类对象做成员变量;
对外提供操作接口,有一系列public成员函数
7、View的封装
1)有BasePanel类,所有界面View都继承它,它有两个作用:封装一些通用功能、接口,例如:资源加载、显示、销毁;
便于管理所有UI;2)每个View类都有一套通用模板,可加快开发效率
8、View类通用模板(规则)1)使用“基于数据”的编程
2)三大操作:创建界面、数据显示、数据操作3)创建界面createPanel
<1>只创建静态界面,不赋值,与数据无关;
<2>使用“界面布局法”,例如左右结构-createPanel(){createLeftPanel(); createRightPanel();}
<3>单例工厂类ComponentFactory创建各种组件:因为组件就10几种(按钮、label、滚动条等)
<4>大量同类型组件的处理:例如背包上各种格子,没必要每个都创建;第一个GO对象:在createPanel()里创建
其它对象可通过实例化创建:GO2=GameObject.Instantial(GO)实例化的地方:若数量少且与数据关系不大 —— 在createPanel(),例如5颗星星;
否则,在refreshPanel(),例如背包物品4)数据显示refreshPanel
<1>两大操作:动态组件的赋值 + 动态创建(针对那些根据数据情况而创建的原件)
<2>显示更新分两种:全局更新、局部更新(节省性能)
5)数据操作:玩家点击事件的处理
<1>两大操作:数据更新、刷新面板refreshPanel
6)代码模板可参考博客“View类通用模板”