欢迎光临散文网 会员登陆 & 注册

简单的UMG通信方式

2020-11-16 12:02 作者:果子加煎蛋  | 我要投稿

有朋友看了我的文章《蓝图之间通信的几种常用方式》想知道UI间的参数传递


既然发问了,那我就来回答一下:

UE4的UI(Unreal Motion Graphics UI Designer )简称UMG也是蓝图的一种,因此它的通信方式也符合蓝图之间的通信方式,不过会有一些变化。



  1. 创建和直接传递

    如果我们想在创建某个UI时候就传递一些变量,可以使用这种方式。

选择UI图标

我们来到UI的图表视图,在变量下创建变量,选择生成时公开,那么这个变量将在UI创建的时候暴露出来。(控件变量无此选项)

✔生成时公开,并且打开小眼睛

这个时候我们就能在创建UI时候将变量传递给UI。

暴露UI变量

2.UI嵌套

如果UI里的控件数量、类型比较多,例如:玩家UI有:玩家状态,玩家属性等,这时候我们可以封装一个功能的UI,然后作为整体放在玩家UI。另外,设计者希望有些组合的控件可以重复利用,也会封装到一起。

在玩家UI里控制板的用户创建下可以找到自己创建的其他UI,拖拽到下方的层级里就实现了UI嵌套。在变量里就可以获取这些UI的参数信息。

用户创建UI
其他UI的变量

UI可以嵌套很多层,例如玩家状态UI嵌套在玩家UI,玩家UI嵌套在主UI,这种通信是单向的,上级UI可以获取下级UI的信息,但下级UI不能获取上级UI的信息。

3.从类获取所有控件

和生成actor类似,从类获取控件是找到这类UI

从类获取widget并创建变量

这种方式可以从下级UI获取上级UI的信息,但将会和文件形成依赖,一般不推荐这种设计。

UI文件相互依赖

4.使用接口解耦

通过创建接口函数来解决文件间的相互依赖,有利于功能管理和扩展


创建接口
创建函数
为下级UI设置接口
单向依赖
单向依赖

UI方便的参数引用

在UMG的设计界面选择控件,在它的细节面板常常能看到这些绑定按钮,绑定按钮可以很方便的选取自己创建的变量,并且在运行中会实时更新这些变量。也可以绑定函数,这些函数也是在运行中实时更新的。

UMG设计器界面
选择创建绑定会自动创建一个函数,也可以选择绑定变量

UMG间的几个简单通信方式就总结到这里,这些方式需要灵活运用,希望能帮到那位朋友和有需要的人。

简单的UMG通信方式的评论 (共 条)

分享到微博请遵守国家法律