除了UMG框架以外,在UE引擎中,还有一个叫做【Slate】的UI框架,它其实才是UE引擎中UI真正的底层实现方式。Slate提供了一种基于【C++ 编程语言】的方式来定义和构建UI,它采用了一种类似于Web开发的方式来构建UI,通过使用声明式语法定义UI的结构和样式。 Slate框架具有以下的优缺点: 优点:Slate具有高性能、即时响应、跨...
其中,UMG是Slate的封装,UMG继承了UObject从而支持反射、蓝图等功能;而Slate则包含了大部分的控件逻辑,包括控件的绘制等方法。 Slate和UMG的关系如下所示: UCLASS(Abstract,BlueprintType,Blueprintable)classUMG_APIUWidget:publicUVisual{GENERATED_UCLASS_BODY()// ...protected:TWeakPtr<Swidget>MyWidget;// ...}...
UMG与Slate:虚幻图形界面设计器(Unreal Motion Graphics UI Designer)(UMG)为 UI编辑工具,可以用来创建UI元素,布局和UI动画。此编辑器下每一个控件对应一个U版控件。U版的控件仅仅是Slate控件的容器,Slate控件是真正执行控件逻辑(包括渲染和事件)的地方。从代码中可以看到一个U版控件总会包含一个S版的控件指针,如U...
UMG是基于原先的Slate封装开发的GUI.UE4提供了可视化编辑器用于用户编辑自己GUI系统同时UMG组件还添加了很多事件和方法并支持BP Slate则是完全C++代码化的,所有的布局和组件创建只能用C++实现(Slate有一些更底层的组件,如SSplitter等,更便于开发复杂UI). 这篇随笔用于记录一些文档以外一些UMG和Slate的一些问题和混用例子(...
Slate Slate 是完全自定义、与平台无关的UI框架 应用 可用于编辑器UI,编辑器的大部分界面都是使用 Slate 构建的 可做为游戏UI 可作为独立应用开发 只能C++ 开发 可以调用 UMG,使用TakeWidget() HUD HUD通常只显示,不互动 可绘制文本、线条等 GameMode 设置 ...
Slate 是完全自定义、与平台无关的UI框架 应用 只能C++ 开发 可以调用 UMG,使用TakeWidget() HUD HUD通常只显示,不互动 可绘制文本、线条等 GameMode 设置 可创建 UMG、Slate UMG (Unreal Motion Graphics) UMG是基于原先的Slate封装开发的GUI 可在编辑设计,支持蓝图、C++访问 ...
【UE4】Slate&UMG小课堂-SafeZone问题记录日常 我们在用UMG制作UI时,可能会用到SafeZone用于解决刘海屏问题。这是一个非常科学的设计,避免了好多繁琐的问题。但今天在使用时也发现了其他问题, 打包之后Vivo X30是水滴屏,一直没发现有问题。然后在iPhoneX上跑发生了错误,如下图: iPhoneX SafeZone导致的现象 最右边的...
UE4的编辑器都是建立在Slate整个框架,包括UE4用于Runtime游戏的UMG这套也是基于Slate系统的。比如说,UButton这个Widget组件就封装了SButton, UButton各种控件事件都是来源于SButton。在Slate框架中,最基本的组件是SCompoundWidget. UCLASS() class UMG_API UButton : public UContentWidget ...
UE4 编辑器中使用UMG 编辑器Slate 在编辑器开发中,无论是官方的例子还是网上的经验,基本上99%都是使用Slate进行的。 Slate用起来还是比较蛋疼的,没有一个图形化的界面拼UI,全部靠代码撸在某些页面制作上的确是有点困扰的。 (但其实习惯了还是可以的)