UE4-(蓝图)第一百零二课 UI与UI之间的数据传递

213 篇文章 590 订阅

示例:

点击新建按钮后,弹出创建名称界面,点击确定,名称出现在指定窗口中。

一、需要三个控件蓝图,创建后分别命名为PlayerList、PlayerSlot、CreatePlayer

二、PlayerList、PlayerSlot与上一章布局一致,更改的内容是:点击新建按钮逻辑删除。

三、创建CreatPlayer控件蓝图,输入框使用Text Box,布局如下

四、.点击新建按钮,弹出名称创建窗口。在PlayerList控件蓝图中,新建按钮的OnClick事件编辑逻辑:

五、实现 CreatePlayer控件蓝图中 点击确定按钮使数据传递及取消按钮的逻辑 

分析:

1.点击确定按钮  需要获取到用户输入的名称,并且输入的名称数据要传递到PlayerList控件蓝图中,此时需要将数据信息传递

2.CreatePlayer控件是被PlayerList中的新建按钮创建,因此可以在CreatePlayer控件中新建一个 类型为PlayerList类型的变量,并且设置为在生成时显示,这样在创建控件节点上选择CreatePlayer类型,就会有相应的参数暴露在节点上,方便传参。

3.因为用于显示名称的UI控件是PlayerSlot,所以在创建名称UI界面 当点击确认按钮后,需要将用户名称数据保存在PlayerList控件蓝图中,当创建创建PlayerSlot控件时,再将数据传递。

在PlayerList控件蓝图创建函数,命名为OnCreatePlayer,输入值为Text类型的变量命名为Name。用于保存传入的名称数据。

4.完成逻辑:创建名称界面(CreatPlayer控件蓝图),点击确认按钮,界面消失,获取到用户输入名称值,并将此值传递到PlayerList的OnCreatePlayer函数中。点击取消界面消失。

5.此时CreatPlayer控件蓝图中的变量  PlayerListUI 为空值,需要在PlayerList控件蓝图中,当点击创建按钮,创建CreatePlayer控件时,传入self自身变量参数(空白处右键搜索 Self 即可获得自身的引用 ),用于给PlayerListUI赋值。

注意:如果之前使用CreateWidge节点创建过CreatPlayer控件的话,重新编译会出现PlayerListUI变量。

六、实现 将用户输入的名称数据,显示到列表中

1.PlayerList中的函数已经获取到了用户创建的名称,此时需要将用户传递的名称数据,传递到PlayerSlot 控件蓝图中的Text中

2.在PlayerSlot控件蓝图创建函数命名为FreshNameText,输入参数为Text类型的Name,该函数用于 为Text 赋值操作,

3.在PlayerList控件蓝图中的OnCreatePlayer函数中实现逻辑:创建PlayerSlot控件,将获取到的玩家输入的名称数据,传递到PlayerSlot控件蓝图中FreshNameText函数中,用于显示名称,并将PlayerSlot控件作为PlayerListBox的子控件显示。

4.编译运行。

  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值