当前课程知识点:虚幻引擎(UE4)技术基础 >  第十章 蓝图应用 >  10.4 用户界面和HUD >  10.4 用户界面和HUD

返回《虚幻引擎(UE4)技术基础》慕课在线视频课程列表

10.4 用户界面和HUD在线视频

下一节:10.5 创建游戏约束

返回《虚幻引擎(UE4)技术基础》慕课在线视频列表

10.4 用户界面和HUD课程教案、知识点、字幕

大家好

欢迎来到虚幻引擎技术基础课堂

我是主讲教师

黄颖翠

现在我们将针对

虚幻引擎技术基础课程中

蓝图应用章节的

用户界面和HUD功能

进行讲解

游戏界面主要是

用于将信息传达给玩家

并提供了用于提示用户直接输入的方法

我们这节课的学习目标是

通过UI显示玩家的相关信息

我们分两个部分

第一

设计与分析需要显示的玩家信息

第二

实现蓝图控制主角个人信息

与UI实时绑定显示

我们先了解两个专业词语

游戏界面通常包含两个主要元素

头显(HUD)

和用户界面(UI)

HUD指的是

游戏期间在屏幕上

覆盖的状态和信息

HUD的目的是

告知玩家当前游戏状态

即分数

生命值

游戏剩余时间等

HUD通常是不可互动的

意味着玩家不能单击HUD的元素

用户界面指的是

菜单和其他互动元素

这些元素通常是

在屏幕上覆盖绘制的

就像HUD一样

但在某些情况下

它们会成为游戏世界本身的一部分

在场景中的一个表面上渲染出来

最明显的UI示例是

游戏启动时显示的主菜单

或玩家暂停游戏时

显示的暂停菜单

但是

游戏期间可能会显示其他UI

这些可以用于显示游戏中

不同角色之间的对话

让玩家可以选择武器

盔甲等等

我们现在设计下

需要显示的玩家信息

左边的图是展示了

控件的布局和所需的控件

右边是显示效果

我们可以看到主要用到了垂直框

水平框

文本框

进度条

他们的主要用途

我在这里给大家介绍一下

垂直框

水平框主要用于对其布局

例如垂直摆放控件

或者水平摆放控件

Text是常用的显示文字的控件

进度条是一般用来

通过图片的截取效果显示数值

是个浮点数0-1之间的一个数

满格图片是1

一般用来显示血条

体力值

进度等

当然作为了这些

还需要绑定到主角开始运行的程序中

才能呈现出来

这个绑定步骤将会在操作练习中

给大家演示

现在我们进入操作部分

一般游戏中都会出现血量

子弹数等数值显示

我们现在在

FirstPersonBP文件夹下

创建一个文件夹UI

在里面右击选择用户界面

控件蓝图

修改名字为HUD

我们打开它

来编辑一个界面UI

我们按ppt显示的效果

制作一个UI

我们需要在面板中

找到一个水平框

然后两个垂直框

在垂直框中

分别拉两个文字

和两个进度条

我们把它调整下位置

文本的垂直框位置设置为

x=80

Y=60

这是相对左上角的坐标

文本这里改成Health健康值

用于显示出来

第二个文本这里

也改成Stamina

体力值用于显示出来

我们再把这两个进度条调整下

填充下

上下置顶

左右置顶

设置上面的颜色为红色

设置下面的颜色为蓝色

做完后

没有颜色显示

是因为它们默认值为0

需要设置它们值为1

才能显示颜色

做完后其实还是不能显示在游戏中的

我们需要把它放在主人公面前

所以我们找到主角的蓝图

找到事件开始

运行BeginPlay

这个函数

在它后面添加调用

我们先拉开一点

右击输入createWidget

创建控件

创建什么控件呢

就是我们刚做的HUD

创建还不够

只是创建了

但没有显示在屏幕中

我们在这再加操作

Add to View

添加到视口上面

修改下连接线

这样就可以显示出来了

编译一下

我们看一下

这回UI就有了

我们可以继续画UI

我们可以修改下他们的名字

让这个控件更直观一点

我们再创建一个水平框

里面放一个文本内容

显示为killed

我们把尺寸放大到32

再加一个文本用来显示击杀数量

默认值显示为0

我们拷贝一份

修改下名字

显示弹药Ammo

用来显示子弹数量

我们重新运行下

你会发现现在UI上的数据

和游戏内部数据

并没有构建关系

我们需要把他们关联起来

我们需要给主角创建几个变量值

健康值

体力

当前弹药数

击杀数

健康值和体力是浮点数

弹药和击杀数是整数

我们点开它们的眼睛

相当于public

可被其他蓝图引用的意思

那么UI上如何和那些变量连接起来呢

我们发现当我们拉这个值时

血条长度会改变

这边有一个绑定

可以和那些变量连接起来

创建一个绑定

这个UI需要拿主角的变量

我们再这个图表里面获取

cast first person Character

这个主角这个类

在这个类中

找到Health健康值这个变量

赋值给返回的节点

当然我们还需要获取主人公

这个对象右击查找

get player Character

获取玩家对象

我们是单机游戏

所以这里索引默认是0就可以了

我们点击

设计器

回到原来HUD编辑界面

你可以看到这里已经绑定好关系了

默认值UI显示这里是1

但是运行后是0

灰色的

说明值已经绑定了

因为我们Health健康值之前赋值为0

我们把健康值赋值为1

我们再创建一个体力值来绑定

结构和健康值是一样的

只是变量连接不同

创建一个绑定

这个UI需要拿主角的变量

我们再这个图表里面获取

cast first person Character

这个主角这个类

在这个类中

找到体力这个变量

返回给节点

当然

我们还需要获取主人公这个对象

测试一下

灰色值为0

我们修改下玩家变量Stamina为1

再运行

有了满的体力

这两个变量绑定了关系

好了

下一个就是击杀数

这个有一点不同

它是绑定的是一个字符串

不是浮点数

当然区别也不是很大

创建一个绑定

我们再这个图表里

获取主角的类

获取到killed值

我们直接连接过去

它会帮我们自动转换

从整数转换成字符串

我们再获取主人公这个对象

子弹也是一个重复的工作

同样

它也会帮我们把值

从整数转换成字符串

编译一下

但是运行后我们UI还是没有用的

为什么呢?

因为这么变量并没有人改变它

虽然被人改变后会被刷新到UI上

没有敌人会攻击我们

但是我们可以改变子弹数量和击杀数量

我们找到主人公的蓝图

在他发射子弹的时候改变子弹数量

我们在发子弹这边做判断

我们做一个分支判断

先判断当前是否是否还有子弹

判断一下当前子弹数是否大于0

如果为假则不做处理

如果为真则发射子弹

那子弹如何减一呢

应该在分支后

真这里做一个子弹整数减一

然后判定能打子弹后

子弹数减一

然后执行发射子弹行为

我们先确认下子弹数量是否是30

设置好了

运行一下

打光子弹看一下

子弹数没有了就不会再发射子弹

那么击杀数如何加1呢

我们可以在圆柱体的蓝图中

找到摧毁这个地方

在摧毁前对击杀数加一

就这个思路

我们先cast to first person

获取他的killed击杀数

然后加一

这里要赋值玩家游戏对象

最后再把这个圆柱销毁

编译一下

我们再试一下

再次攻击爆炸

击杀数加一

好了

这样就完成了我们这节课目标

在UI上正确显示了数值

本小节的操作讲解已经完成

留给大家一个课后练习

请大家课后自己操作一下

实现一个蓝图逻辑

当子弹被消耗后

按A键可以补充弹药

但是补充值满子弹数是30

本节课内容就讲解完毕

感谢大家聆听

再见

虚幻引擎(UE4)技术基础课程列表:

第一章 UE4引擎基础

-1.1 虚幻4引擎简介

--1.1 虚幻4引擎简介

--1.1 小节习题

-1.2 虚幻4引擎的安装及环境部署

--1.2 虚幻4引擎的安装及环境部署

--1.2 小节习题

-1.3 创建项目及试玩

--1.3 创建项目及试玩

--1.3 小节习题

-第一章 章节测试

第二章 UE4编辑器

-2.1 虚幻4编辑界面介绍01

--2.1 虚幻4编辑界面介绍01

--2.1 小节习题

-2.2 虚幻4编辑界面介绍02

--2.2 虚幻4编辑界面介绍02

--2.2 小节习题

-2.3 视口导航及基本操作

--2.3 视口导航及基本操作

--2.3 小节习题

-2.4 导入资源、项目迁移和管理

--2.4 导入资源、项目迁移和管理

--2.4 小节习题

-第二章 章节测试

第三章 地形系统

-3.1 地形工具

--3.1 地形工具

--3.1 小节习题

-3.2 新建地形

--3.2 新建地形

--3.2 小节习题

-3.3 塑造地形

--3.3 塑造地形

--3.3 小节习题

-3.4 使用植被工具

--3.4 使用植被工具

--3.4 小节习题

-第三章 章节测试

第四章 材质系统

-4.1 初识材质

--4.1 初识材质

--4.1 小节习题

-4.2 编辑基于物理材质

--4.2 编辑基于物理材质

--4.2 小节习题

-4.3 使用贴图纹理创建材质

--4.3 使用贴图纹理创建材质

--4.3 小节习题

-第四章 章节测试

第五章 光照系统

-5.1 大气照明和定向照明

--5.1 大气照明和定向照明

--5.1 小节习题

-5.2 添加点光源

--5.2 添加点光源

--5.2 小节习题

-5.3 添加聚光源

--5.3 添加聚光源

--5.3 小节习题

-5.4 光源质量和反射

--5.4 光源质量和反射

--5.4 小节习题

-第五章 章节测试

第六章 场景搭建

-6.1 几何体及纹理贴导入

--6.1 几何体及纹理贴导入

--6.1 小节习题

-6.2 素材整理和项目准备

--6.2 素材整理和项目准备

--6.2 小节习题

-6.3 搭建流程

--6.3 搭建流程

--6.3 小节习题

-第六章 章节测试

第七章 动画系统

-7.1 动画资源与编辑器

--7.1 动画资源与编辑器

--7.1 小节习题

-7.2 混合空间

--7.2 混合空间

--7.2 小节习题

-7.3 动画窗口及编辑动画

--7.3 动画窗口及编辑动画

--7.3 小节习题

-7.4 创建自定义角色

--7.4 创建自定义角色

--7.4 小节习题

-第七章 章节测试

第八章 特效系统

-8.1 创建粒子系统

--8.1 创建粒子系统

--8.1 小节习题

-8.2 虚幻粒子基础功能介绍01

--8.2 虚幻粒子基础功能介绍01

--8.2 小节习题

-8.3 虚幻粒子基础功能介绍02

--8.3 虚幻粒子基础功能介绍02

--8.3 小节习题

-8.4 粒子特效的综合运用

--8.4 粒子特效的综合运用

--8.4 小节习题

-第八章 章节测试

第九章 蓝图概念

-9.1 初识蓝图

--9.1 初识蓝图

--9.1 小节习题

-9.2 蓝图类型

--9.2 蓝图类型

--9.2 小节习题

-9.3 蓝图通信

--9.3 蓝图通信

--9.3 小节习题

-9.4 创建蓝图

--9.4 创建蓝图

--9.4 小节习题

-第九章 章节测试

第十章 蓝图应用

-10.1 击中事件

--10.1 击中事件

--10.1 小节习题

-10.2 实现物体来回移动

--10.2 实现物体来回移动

--10.2 小节习题

-10.3 Input输入与玩家快捷键交互

--10.3 Input输入与玩家快捷键交互

--10.3 小节习题

-10.4 用户界面和HUD

--10.4 用户界面和HUD

--10.4 小节习题

-10.5 创建游戏约束

--10.5 创建游戏约束

--10.5 小节习题

-10.6 游戏结束与重玩功能

--10.6 游戏结束与重玩功能

--10.6 小节习题

-第十章 章节测试

第十一章 游戏AI

-11.1 行为决策的AI

--11.1 行为决策的AI

--11.1 小节习题

-11.2 AI监听玩家行为

--11.2 AI监听玩家行为

--11.2 小节习题

-11.3 AI与玩家的攻击伤害

--11.3 AI与玩家的攻击伤害

--11.3 小节习题

-11.4 AI生成点与随机巡逻

--11.4 AI生成点与随机巡逻

--11.4 小节习题

-11.5 优化游戏体验

--11.5 优化游戏体验

--11.5 小节习题

-11.6 渲染及代码优化

--11.5 优化游戏体验

--11.6 小节习题

-第十一章 章节测试

第十二章 音频系统

-12.1 音频基础

--12.1 音频基础

--12.1 小节习题

-12.2 音频混成器

--12.2 音频混成器

--12.2 小节习题

-12.3 声音特效

--12.3 声音特效

--12.3 小节习题

-第十二章 章节测试

10.4 用户界面和HUD笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。