一:Slate定制样式 (一)预期效果:用Slate写一个控件,它的样式所用的美术资源默认是从本地加载的,创建一个SlateWidgetStyle能够从项目中加载美术资源(Content文件夹下的资源)。 如下图所示,用slate写的控件可以像UMG一样很容易的设置美术资源。 slate_image1

(二)实现步骤:(开始前已经用Slate写好了一个控件) (1)、创建C++类:MySlateWidgetStyleContainerBase(类创建好后UE4会报错,不用管它,重启一下就好了) slate_image2

(2)、自己定义类的名称和路径后,在VS中打开

1
2

在.h文件中,如下图:

后面创建 SlateWidgetStyle的时候,会选择下面这个类创建。 slate_image3

FMyWidgetStyle是一个结构体,如下图所示: slate_image4

1
2

在.cpp中有结构体FMyWidgetStyle中函数的相关实现,如下图:

(3)获取样式。slate样式制作好后,就是如何获取到FMyWidgetStyle。

在负责生成具体控件的类中获取slate样式FMyWidgetStyle。(最后创建slate样式的时候,样式的名称一定要和这里的名称“MyWidgetStyle_BP”一样。而且需要在指定的目录下创建,具体的路径是在负责slate样式的类中指定的。)

slate_image6

(4)在UE4插件自己生成的负责控件样式的类中,更改资源的加载方式,如下图所示: (一定要在指定的路径下创建slate样式)

slate_image7

(5)、编译代码,启动程序。在UE4中指定的路径下创建slate Widget Style:单击右键->选择UserWidget->选择slate Widget style。在弹出来的对话框中选择,我们自己创建的C++样式类:UTaskWidgetStyle slate_image8

slate_image9

(6)最后自己添加美术资源进行测试: slate_image10