利用Flash IDE完善的2D工作流,通过Scaleform中间件进行集成,实现富表现效果与可高效开发的UE3 UI系统。
特点
- 数据驱动:所有数据发生改变时,会触发主动广播消息行为,UI界面通过注册所需要关心的数据消息来被动更新界面显示元素。如何显示则完全根据表现层需求自行定义。
- 逻辑解耦:只通过消息进行通信,Ingame和UI层之间不直接引用任何实例对象。
- 数据解耦:只使用基元数据类型,没有自定义复杂数据类型,减少广播时的资源消耗。
- 富美术表现:利用Flash编辑器时间轴动画工具优势,可自由定制动画,并支持混合音轨。
- 资源独立管理与优化:利用Flash的资源管理方案,接管了贴图,声音,字体,动画等资源,并做了优化。
- 资源自动化处理:利用Flash的IDE可扩展性,编写JSFL脚本,实现基础资源和复合资源SWF的批处理。
- 组件生态:定制了最精简的组件,并通过组合实现了多种复合组件。重新定制的组件较传统组件有更丰富的表现效果,再扩展也很便利。
- 功能生态:定制了多种通用功能模块,比如小地图,外部图片,Web界面,Swf嵌入。
- 制定业务逻辑开发规范:实现了SPOT(真理的单点性)原则。界面逻辑嵌套式开发:通过逻辑单元拆分,复杂的界面由多个子界面组合而成,每个功能对应一处逻辑,消除重复。
应用
Unreal Engine 3 的集成
- 界面显示系统的独立性
该架构可基于scaleform中间件提供的库进行扩展,与ingame的通讯机制需要匹配其语言互操作的部分。但由于采用消息通信机制,切换非常易于实现,且整个UI系统可以替换成其他形式。
- 实现了Ingame的整洁性
接管了传统工作流程中unreal客户端关于界面表现的所有逻辑功能,由UI系统进行定制,比如:小地图显示对象使用原始3D世界信息,坐标数据转换与显示效果完全由UI对应的模块来定义。
- 资源更新层面更高效
由于抛弃传统的canvas对象来画UI,优化了资源制作方法,并通过批处理命令进行自动化更新,客户端开发效率大大提高。