UE4UMG系统入门

UI的创建

如何在屏幕上显示UI

先创建一个UI,内容浏览器里如图找到控件蓝图
在这里插入图片描述
在人物蓝图里面,
蓝图这个样子在这里插入图片描述
这样就简单的把一个UI添加到了屏幕上
在这里插入图片描述
添加flip flop这个函数可以进行压T键进行创建移除,从父项移除不仅可以把UI从屏幕移除,还可以把UI从父类中移除。

Canvaspanel(画布)控件及其属性

在这里插入图片描述
感觉中文翻译挺详细的
那个工具提示工具常常用于物品栏的开发
绑定是按帧绑定,用于逻辑处理得到某一个值后返回到里面
在这里插入图片描述

Text控件讲解

锚点


锚点决定了UI 在屏幕哪个位置显示,可以进行自行尝试,分别把锚点放到左边右边中间,可以发现区别,因为由控件和锚点的距离决定,把锚点放到中间,这样就会保持到中间

线和点的区别,线是进行一定程度的拉伸,通常使用进度条进行拉伸

对齐

在这里插入图片描述
计算所有距离以这个距离进行计算

外观

在这里插入图片描述
注意添加材质后字体没了,是因为经过ue4的各种渲染后,消失了,其他东西自己理解

UI相应玩家输入以及相应机制

之前在人物蓝图中输入键盘会有一些键盘,但是在控件蓝图里面是没有这个函数的。
控件蓝图中的监听键盘事件的函数是
在图表面板里面函数旁边的重载里面有很多函数
在这里插入图片描述
诺,这个就好了!
最后那个已处理意味着输入流已经完成
但如果单单这样运行是无法在屏幕上输出那个字符串的,我们需要添加焦点,在事件图标里的事件构造里面拖出设置焦距,然后在UI里面的交互里的为可焦距点上对勾,这样我们就实现了在UI面板里面相应玩家输入
在这里插入图片描述
如果有很多字母的?我们可以使用switch,对于text可以先拖出tostring,然后可以拖出switch了

通过对handle和unhandle的多次试验,我们可以得出,输入流先流入UI在流入人物控制器

输入模式和鼠标指针

虚幻引擎里自带三个输入模式的函数
在这里插入图片描述
先讲解第三个
在这里插入图片描述
把它连接到人物蓝图里面去,按下T键发现UI和鼠标显示出来了,但注意鼠标应该只显示了一次,再次点击鼠标,鼠标指针就消失了,那应该如何显示鼠标指针呢?
从玩家控制器的返回值里面拖出set show mouse cursor函数把它连上并且勾选就好了
在这里插入图片描述
第一个选项对鼠标没有任何限制
第二个被捕获时(左键单击啊,右键点击屏幕啊之类的),不会让鼠标越过这个边界框
第三个,无论是否捕获,都在锁定
第四个,全屏时锁定。

设置仅输入UI模式,在人物蓝图中连好之后运行。
运行按下T在按下K键上面仅仅显示出UI中print函数的字符串

设置仅输入游戏输入就是游戏不接受UI的输入了

在这里插入图片描述
在UI里面这么写,记得删除人物蓝图里的flip flop,否则会报错。

progressBar与Image控件(进度条和图像控件)

当我们把进度条和文本框重叠在一起时,虽然Zorder都是同一级,但是却发现渲染先后顺序不同,这是因为,如果Zorder属于同一级,那渲染顺序取决于层级面板。
如果想要改变这种,那就改变Zorder,越大的Zorder越靠后渲染,也就是在顶层,越小的Zorder越先渲染,也就是底层。

把进度条的背景设置成UE4的logo,发现好像不对劲
在这里插入图片描述
选择了以盒子绘制,成了一个三成三的框并进行了延伸,把上述调成000就好了

一般绘制成图像即可


进度里面的为边框点上之后,自己可以尝试查看一下,这个常常用于游戏加载过程中的那个动画图!

尺寸,水平与控制窗

把image放入尺寸框后,会发现image会受到尺寸框的影响
在这里插入图片描述
这八个属性中前六个只有在大小到内容启用之后才可以使用
最下面两个意思这是否以1:1的纵横比进行拉伸
size box只能容纳一个子控件

按钮

在这里插入图片描述
这里有一些基础的外观设置,可以对其设置音效等等。
使用以下里面的event操作
在这里插入图片描述
这样可以实现最简单的关卡蓝图切换
在这里插入图片描述
这里可以设置对鼠标最简单的交互设置

外部图片的导入和设置

导入方式一:拖入导入
导入方式二:点击import
导入方式三:使用资源迁移,请注意,资源迁移迁移的是资源工程文件夹

当我们把图片导入ue4中,会发现图像不一样,是因为默认导入的世界贴图组,如果需要,应该改成UI贴图组,把默认压缩组改成改成2d资源使用,将它作为一个2d资源使用,这样资源就可以正常使用了。

基础UI动画制作与调用

以例子进行说明,创作一个淡入淡出的字幕/
在这里插入图片描述

控件蓝图设计器下端可以进行一些简单动画的实现,创建一个文本,实现淡入淡出,在时间轴里天剑两个关键帧,把不透明度分别调到0和1,打开自动K帧,拖动进度条,就可以看见字幕的淡入淡出,为了方便演示,现在设计一个按钮,点击时播放淡出淡出的动画

在这里插入图片描述
讲解一下播放动画的各个属性

目标在目前而言可以理解为作用于哪一个蓝图,具有多态性
第二个是执行是哪一个动画
Start at Time是执行的开始时间
下面的是播放次数,如果设置为0,那就会无限制循环播放,如果要停止,需要另一个函数stop animation,进行停止
播放模式有三个,注意最先面的pingpong意思是正着播放一段,在返回播放一段。
第三个是播放速率,类似于倍速
最后一个是恢复模式,意味着你的播放完毕后,你的动画所驱动的控件是你播放之后的状态还是你播放前的动态。

实战环节,制作一个状态条

在这里插入图片描述
这是我的最终样子,进行一个最大程度的复刻
在这里插入图片描述

在这里插入图片描述
考虑到左边可能会有图片进行导入,这里将修改边界左边的填充设置成150,注意到填充背景与长度的不符,这就是为什么要在覆层里面添加除了进度条之外还要添加image的原因
倾斜效果在变换里的修建可以进行更改
考虑到需要在游戏刚开始时就显示,所以,最后在人物蓝图里面写入添加到视口的蓝图。
在这里插入图片描述

UI中关联数据的几种方式

就以前面创建的状态栏为例,首先先给人物添加这些属性
这里由于时间关系,仅仅制作一个生命值的数据,先给人物添加变量,
下面进行数据关联,数据关联有两种方式,第一种时直接绑定变量,第二种时绑定一个函数
对于第一种直接绑定变量,点击bind,并没有出现一个可供选择的变量,这是因为没有一个变量可以获取的上面,得先获取,小白人蓝图中的变量,把信息传递到HUD面板中
最简单的的方法是
在这里插入图片描述
通过蓝图投射,把最简单的获取玩家角色转化为了小白人蓝图,显然也是需要游戏刚开始时候时就打开这个UMG面板,在小白人蓝图里我们运用的是事件开始运行这一函数,通过ctrl cv我们发现这一函数并不能在UI面板里面使用,保存编译,现在我们就可以在绑定里面发现变量。

第二种是创建一个函数逻辑,最后返回一个值,进行进度条的拖动。
在这里插入图片描述
这样我们就实现了与游戏的交互,这里是每帧调用,比较消耗性能,可以通过一个打印字符串函数进行调试

在人物蓝图里写两个函数,实现游戏中恢复hp
在人物蓝图里创建两个函数,
在这里插入图片描述
在这里插入图片描述
这样我们就实现了用数据与游戏的交互

显而易见,这种做法比较消耗性能,

此处插一句话
有些函数是绿色的,代表是纯函数,只是通过一些计算,不应该去修改一下数据,修改类啊其他的数据,对于游戏进程没有任何的影响
在这里插入图片描述
这个方法只有调用的时候才会去调用
基于目前的设定
在这里插入图片描述
这样就不会每帧调用,只有在人物调用NM后才会有一个了解

事件分配器

在这里插入图片描述
这样可以在很多蓝图里面都绑定事件

在这里插入图片描述
调用就是执行与此事件分配器所有绑定的事件
绑定的是事件,不能是函数
在这里插入图片描述
这样就把刚才的函数写成了一个事件,事件分配器可以把不同蓝图的不同函数集中到一个地方,这么多事件只用集中到一个事件分配器中,不用每次都手动去调用,最后只用调用一个事件分配器中去

悬停ToolTip的简单制作

1自定义提示信息(不仅限于文字)
如果想要提示信息为同一UI控件蓝图中的样式,可以创建完成后编译,进行属性绑定操作,选择属性中存在于该蓝图中的控件名称,运行后,鼠标移动到有绑定属性的按钮上时,会出现绑定的控件样式,鼠标移走后会自动消失。
22.函数绑定显示另外一个控件蓝图内容

在文件夹空白右键创建控件蓝图,设置自己想要展示的样式,编译并保存。

返回到用于显示的控件蓝图中,绑定选择创建绑定,生成绑定函数。
在这里插入图片描述

进入到图标编辑创建的绑定函数逻辑。只需要使用创建控件节点,将自定义的样式蓝图创建即可。
在这里插入图片描述

编译,运行

鼠标移动到绑定函数的控件上时显示提示信息,并且会自动检测是否在窗口边缘,以便更改提示信息出现的位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值