当前课程知识点:虚幻引擎(UE4)技术基础 > 第十一章 游戏AI > 11.5 优化游戏体验 > 11.5 优化游戏体验
大家好
欢迎来到虚幻引擎 技术基础课堂
我是主讲教师 黄颖翠
现在我们将在虚幻引擎技术基础课程中
游戏AI章节
学习如何优化游戏体验
一款单机游戏基本的功能
我们基本实现的差不多了
但是我们还需要处理一下
UI显示问题和游戏难度
那么这节课
我们来学习下
如何根据玩家条件
显示最后的UI菜单
区分胜利还是失败的不同显示
还有
使用调节控制游戏难度
好
现在开始操作部分
现在我们来通过操作学习本章内容
先考虑下我们已经有的UI
我们已经有玩家信息的UI
有胜利界面的UI
我们需要新加失败界面UI
我们复制这个胜利界面UI
然后修改下文字显示就可以了
因为排版差不多
我们把你赢了
改成你挂了
颜色改成红色
这样结束界面就准备好了
那如何调用这个结束UI呢
那就是健康值为0的时候
我们可以在主角蓝图中
被AI攻击这里
我们先定义一个变量Lose 布尔类型
判断如果当前健康值小于等于0
则设置Lose为真
那么判断一下
如果血量被扣光后
为真
则调用结束游戏EndGame
然后我们给这个EndGame
需要增加逻辑
我们需要在创建控件前做一个判断
决定是显示胜利
失败哪个UI界面
Lose为真就显示失败界面
Lose为假则显示胜利界面
我们运行测试下
失败界面是否可以显示
第二个内容
下面我们设置一下回合制效果
我们需要记录下
我们现在打的是第几关
因为我们如果重新加载场景
所有的场景数据会重置
所以我们需要有地方可以存储
不会被重新加载而删除的数据
我们先创建一个蓝图类
这个类就是我们需要存储的东西
这个类继承SaveGame类
取名SaveSystem
我们要保存就保存这整个类
我们把我们需要的值
就存到这个类的一些变量中
我们保存值到这些变量中
那么它就会被保存到硬盘中
我们下一个关
就可以在这里获取到变量值
我们新建
当前关卡数
整数
打开眼睛
我们什么时候保存它
什么时候获取它的值
我们在主角蓝图中
我们应该在关卡开始的时候
需要对它做点什么
我们要做两个事情
一个是看一下
这个游戏的存档是否已经有了
我们可以拖slot name
选择提取变量
它就会帮我们按这个类型
创建一个新的变量
这个变量我们可以改一下名字
SlotName
这个值眼睛睁开
外部需要访问的
然后再判断是否存档成功
如果是为真
说明有存档
那么就在存档这里
通过传入名字SlotName
加载出来
加载出来后
我们需要先转换成
我们的游戏存档类型
SaveSystem
然后我们获取到这个类里面的变量
我们就以关卡数和击杀数做一个关系
这样关卡数越大
击杀难度越大
我们这里就设置当前关卡数乘上关系系数值
赋值给击杀目标
那么如果存档不存在的话
我们就需要创建一个新的存档
选择我们创建新的类型是SaveSystem
然后创建成功后
我们就可以初始化关卡数
CurrentLevel =1
然后我们这里也需要
关卡数*系数赋值给目标击杀数
因为每一次的存储
都是对硬盘进行操作
所以我们尽量少操作
所以我们可以定义一个变量
用来存储获取到的变量
减少对硬盘的读取
所以我们需要在获取
和新建的类的时候给这个变量复制
现在有了读取操作
那么还需要做存盘操作
那存什么东西
我们就是存这个东西
我们创建这个变量
这样拖出来可以快速的建一个变量
SaveInstance
相当于设计模式的单例模式
然后新建一个流程
给它设置下
连接一下
用这个变量记下来
我新建存储类
上面也一样
加载的东西也需要通过这个变量记下来
最后连接上执行UI显示
我们新建后只有一个变量
还是需要在关卡数设置为1之前
把这个变量存进去
SaveGameToSlot
前面的步骤都没有存到盘上
只是到了这步才存到盘上
然后这里的返回值
就是用来查看它是否存储成功
好
这个游戏的名字就拉出来了
是不是很方便
在线上双击即可
出现一个转折点
我们拉一下线
清晰一点
这里备注一下
加载存档
这里我们没有存档的就从第一关开始的
存档进去
如果有存档的就从存档中取出来值
也就是只有第一个关的存档
我们怎么才能达到第二关
首先是在我们打过这一关的地方存档
那就是在EndGame这里
在胜利的过了这关的时候
加载设置在创建控件之前
我们调整一下
把SaveInstance中的
关卡数自加一
然后赋值回存储盘中
我们胜利后
进入下一关
然后重新加载场景
我们有会重新进入beginPlayer
又可以拿到关卡数
再乘上系数2
就是这关的击杀数
然后这个胜利界面我们进去改一下
把重玩换成开始
把你赢了
换成第几关
换成一个水平框
然后调整下位置和大小的数值
里面每个字一个文本
用来灵活改变
调整一下对其
这样他们就往中间靠拢
因为每一个关都是不一样的数字
我们需要把关与CurrentLevel关联
我们给关卡数UI做绑定
添加绑定
进入
添加获取到主角中的SaveInstance
然后取到关卡数显示到UI上
我们现在功能已经完成
我们运行下
看看是否达到效果
我们这节课做的功能有
1、失败界面
2、关卡保存到硬盘
3、修改胜利界面变成跳转到下一关界面
并且每次会提示是第几关了
4、关卡数乘以2就是这关的击杀目标数
本小节的操作讲解已经完毕
留给大家一个一个课后练习
请大家课后优化游戏
给自己这款游戏
加上一个自己的玩法功能
好
本节课内容就讲解完毕
感谢大家聆听
再见
-1.1 虚幻4引擎简介
--1.1 小节习题
-1.2 虚幻4引擎的安装及环境部署
--1.2 小节习题
-1.3 创建项目及试玩
--1.3 小节习题
-第一章 章节测试
-2.1 虚幻4编辑界面介绍01
--2.1 小节习题
-2.2 虚幻4编辑界面介绍02
--2.2 小节习题
-2.3 视口导航及基本操作
--2.3 小节习题
-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 小节习题
-第三章 章节测试
-4.1 初识材质
--4.1 初识材质
--4.1 小节习题
-4.2 编辑基于物理材质
--4.2 小节习题
-4.3 使用贴图纹理创建材质
--4.3 小节习题
-第四章 章节测试
-5.1 大气照明和定向照明
--5.1 小节习题
-5.2 添加点光源
--5.2 小节习题
-5.3 添加聚光源
--5.3 小节习题
-5.4 光源质量和反射
--5.4 小节习题
-第五章 章节测试
-6.1 几何体及纹理贴导入
--6.1 小节习题
-6.2 素材整理和项目准备
--6.2 小节习题
-6.3 搭建流程
--6.3 搭建流程
--6.3 小节习题
-第六章 章节测试
-7.1 动画资源与编辑器
--7.1 小节习题
-7.2 混合空间
--7.2 混合空间
--7.2 小节习题
-7.3 动画窗口及编辑动画
--7.3 小节习题
-7.4 创建自定义角色
--7.4 小节习题
-第七章 章节测试
-8.1 创建粒子系统
--8.1 小节习题
-8.2 虚幻粒子基础功能介绍01
--8.2 小节习题
-8.3 虚幻粒子基础功能介绍02
--8.3 小节习题
-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.2 实现物体来回移动
--10.2 小节习题
-10.3 Input输入与玩家快捷键交互
--10.3 小节习题
-10.4 用户界面和HUD
--10.4 小节习题
-10.5 创建游戏约束
--10.5 小节习题
-10.6 游戏结束与重玩功能
--10.6 小节习题
-第十章 章节测试
-11.1 行为决策的AI
--11.1 小节习题
-11.2 AI监听玩家行为
--11.2 小节习题
-11.3 AI与玩家的攻击伤害
--11.3 小节习题
-11.4 AI生成点与随机巡逻
--11.4 小节习题
-11.5 优化游戏体验
--11.5 小节习题
-11.6 渲染及代码优化
--11.6 小节习题
-第十一章 章节测试
-12.1 音频基础
--12.1 小节习题
-12.2 音频混成器
--12.2 小节习题
-12.3 声音特效
--12.3 小节习题
-第十二章 章节测试