问题列表:
1. Slate是什么
2. 整个编辑器都是用Slate做得吗
3. 场景的绘制工作是如何与Slate结合的?
Slate是一套跨平台的UI框架,既可以用来做应用程序的UI(如UE4 Editor)、工具的UI,也可以做游戏中的UI。
经过初略地阅读Slate源码,得出如下一个原理图:
解释:
1. Slate Application表示一个应用程序对象
2. 应用程序对象 可以有多个Slate-Window, 每个Slate-Window对应一个Native-Window(操作系统提供的窗口);
3. Slate-Window里面有很多Slate Widget对象,组成了它自己的窗口系统。 这一套的独立的UI系统类似于MyGUI,CEGUI,Windows的视窗系统。
UE4-Editor就是由多个Window和每个Window下的各种Widget组成的,渲染3D场景的那块也是个Widget。
下面是一个简单的布局图:
以前UE3 Editor是用XWidgets那套跨平台UI库做的,每个控件都是原生窗口。经过Slate这一套后,可以发现:窗口系统这个行为是一致的(如 鼠标,键盘消息,窗口层次),以前UE3上的