一、效果展示:
二、创建嵌套控件UMG_NestedWidgets
1、新建用户控件,并更名为UMG_NestedWidgets。
2、拖拽图像到画布面板,调整参数如下:
3、拖拽垂直框到画布面板,调整参数如下:
4、添加滚动框,参数如下图:
5、拖拽文本,参数如下:
6、控件层级结构如下:
7、垂直框中添加4个水平框,之间用间隔区相隔,层级结构如下:
8、第一个水平框中添加文本和文本框参数调整后,样式如下:
9、依次调整其它水平框内容,调整后样式如下:
图层结构如下:
三、创建用于嵌套在UMG_NestedWidgets中滚动框的控件UMG_Entry。
1、新建控件蓝图,更名为UMG_Entry。
2、添加水平框,水平框里面放2个垂直框。
3、第一个垂直框样式如下:
4、第二个垂直框的层级结构及样式如下:
5、对第二个垂直框的所有文本创建绑定函数。
6、创建枚举数据类型Race
7、创建结构数据类型PlayerData_Struct
8、编辑控件蓝图UMG_Entry的事件图表
(1)创建一个PlayerData_Struct类型的变量
(2)分别设置绑定函数
四、编辑UMG_NestedWidgets的事件图表
1、当控件被创建时,我们需要显示鼠标。
2、创建控件蓝图UMG_Entry的对象引用类型的变量
3、创建控件并设置好变量
4、把它添加到UMG_NestedWidgets中的滚动框中
添加到界面上效果如下:
效果不好需要调整。
5、添加一个变量ScrollBox is filled用于判定是否在滚动框中添加了控件蓝图。
6、当添加后设置为真
7、我们需要把playerdata结构体类型数据变成公开,这样就可以在此蓝图实例上进行编辑,随时改变它的值。
注意还得勾选生成时公开,否则的话看不到。
8、UMG_NestedWidgets中这些值需要赋给控件实例的变量playerdata。所以我们需要创建一个playerdata结构体类型的变量。
结构体类型的变量来源于可编辑文本框、滑块和组合框
但你会发现组合框被选择的值为字符串,类型不匹配
那么我们来创建一个枚举型Race变量,根据下拉列表框的值来设置此变量。
9、剩下的就是当UMG_NestedWidgets中这些值改变时实时改变。
(1)当文本被修改时调用
(2)当两个滑块的值变更时调用
(3)当下拉列表框已变更选择时调用
10、枚举型Race变量selectedvalue值得设置
运行测试: