一、GUI体系
1、Immediate Mode
比如UnityUGUI。优点:直接快速;缺点:逻辑比重大
2、Retained Mode
把要绘制的指令存到一个buffer中,统一绘制
优点:把游戏逻辑和UI渲染分开,扩展性强
例子:Unreal UMG
3、Design Pattern
(1)MVC
(2)MVP
(3)MVVM
二、数据系统
1、数据定义(序列化):
(2)文本文件(Text Files):txt、obj、xml、json(相较xml,文件小,处理快)等
(3)二进制文件(fbx支持文本和二进制两种格式):优点是占用空间小,加载速度快,防破解,debug费劲
(4)资产引用与数据继承
2、数据加载(反序列化):
先扫描数据,生成< field - value >tree
无论多复杂的文件,都是一个树状结构
如果用二进制做反序列化,要注意Endianness(大小端)
3、资产版本兼容性
Unreal的做法:对于每一个资产,程序员手写版本号
Google:Protocol Buffers ,对于每一个数据(field),都会定义一个独立无二的unique id,通过比较id有无发生变化可得知数据是否发生更新
4、工具的鲁棒性
命令模式:方便引擎崩了恢复数据
二、反射
1、什么是反射,有什么作用?
2、什么是元数据?MetaData?
3、利用反射生成属性面板的过程?