UE4之SlateUI系统初探

问题列表:

        1.  Slate是什么

        2.  整个编辑器都是用Slate做得吗
        3.  场景的绘制工作是如何与Slate结合的?


        Slate是一套跨平台的UI框架,既可以用来做应用程序的UI(如UE4 Editor)、工具的UI,也可以做游戏中的UI。

经过初略地阅读Slate源码,得出如下一个原理图:

UE4之SlateUI系统初探_第1张图片 

解释:

          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。

      下面是一个简单的布局图:

      UE4之SlateUI系统初探_第2张图片

         以前UE3 Editor是用XWidgets那套跨平台UI库做的,每个控件都是原生窗口。经过Slate这一套后,可以发现:窗口系统这个行为是一致的(如 鼠标,键盘消息,窗口层次),以前UE3上的Viewport, ViewportClient, GameViewportClient, LevelEditorClient这一套都是适用的。

         现在用了Slate这一套针对这个Native-Window上的绘制流程就如下了:

         A.  先绘制3D场景Widget (NOTE: 这个用于绘制3D场景Widget的下面是不会有其它Widget的 :-) )

         B. 再绘制其它Slate-Widgets


下面看一下Intel GPA的分析截图:

     编辑器:

UE4之SlateUI系统初探_第3张图片

     PIE模式:

UE4之SlateUI系统初探_第4张图片

=============

声明式的语法\  组装 

=============

https://docs.unrealengine.com/latest/CHN/Programming/Slate/Overview/index.html



你可能感兴趣的:(UE4)