UE4_用户控件_4_Widgets嵌套Widgets构建复杂系统

一、效果展示:

二、创建嵌套控件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值得设置

运行测试:


五、拓展改进

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Growthofnotes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值