当前课程知识点:虚幻引擎(UE4)技术基础 > 第十章 蓝图应用 > 10.5 创建游戏约束 > 10.5 创建游戏约束
大家好
欢迎来到虚幻引擎技术基础课堂
我是主讲教师
黄颖翠
现在我们将在
虚幻引擎技术基础课程中
蓝图应用章节
学习创建游戏约束
我们这节课的学习
实现一些游戏中的
一些玩家技能
第一点
实现玩家加速冲刺时
体力值也相应下降
当不加速行走的时候
会自动恢复体力值
第二点
创建子弹夹
并且玩家可以拾起弹夹
补充弹药
现在开始操作部分
我们学习了原理
现在我们来实际操作一下
如何实现这个两个效果
我们先做体力下降这个逻辑
打开玩家蓝图
找到我们之前写的冲刺的逻辑
先加两个变量
StaminaCost体力消耗
浮点数
值为0.1
还要恢复体力
StaminaRecharge
浮点数
值0.05
恢复比使用来的慢
还要isSprinting布尔类型
判定是否在跑
好现在把这两个值拖出来
减去消耗值
当然不能一直消耗
所以这里max
和0之间求最大值
就是如果成负数就变成0
最后赋值回体力
然后创建一个自定义事件
取名SprintDrain
把它封装成一个函数
方便按加速的时候
可以多次调用
再在按钮按下的时候
这里调用
set Timer by function name
根据函数名字设置定时器
用来持续按下按钮时
定时调用SprintDrain这个函数
这个定时器是一个循环
需要勾选loop
这样调用这里后
会一直间隔0.2秒调用
消耗就是这样子了
那抬起按钮时呢
就应该是
clear time by function name
清除计时器
这样就不会掉体力了
运行一下
我们可以用Tick事件
当没有按下时
每帧试图恢复体力
先添加事件Tick
加一个分支
我们发现之前
设置错误应该是布尔类型
我们改一下
继续
判定是否是在消耗体力
如果没有
假
恢复体力
设置体力值
这个体力值是加上恢复值
值小于1
然后赋值给体力值
我们还需要做一个延迟
不是每帧都恢复
而是0.2秒触发一次
恢复一次0.05体力值
那么什么时候恢复呢
什么时候不恢复呢
那就是在按下加速按钮后
设置sprinting 值为真
那么如何停止恢复体力值呢
那么就是还是需要设置sprinting
值为假
那就是这里
抬起按钮时
对了清除定时器
这里也要写上
自定义事件名称
否则不会停下定时器
这样数值显示上
是可以上升下降的
但是还需要在加速前
判定是否有体力
有体力才能跑起来
我们把这里值移动下位置
判定是否大于0
按下这里添加一个分支连接判断
为真则可以加速
还有一种情况
跑着跑着没体力了
就是要判定如果小于0
还需要设置回速度为600
好
现在运行下
看是否可以实现功能了
体力已经实现了
那补给弹药怎么做呢
我们就在这里新建一个蓝图类
AmmoPickUp
被捡起来的子弹
然后给他添加一个静态网格体组件
给他的静态网格体
这里选择shape_Pipe
材质这里选择门的颜色
door
把它保存一下
然后我们可以把它拖进地图里
给随便放置几个
运行一下
你会发现我们走过去
我们会被它阻挡
我们需要改一下逻辑
我们删掉这些
我们需要拾起弹夹
首先触发碰撞
调用ActorBeginOverlap事件
这个是弹夹
应该有一个弹药数
当然我们拾取弹夹获取多少弹药数
我们先定义一个整数变量
AmmoNumber
15
当拾取弹夹
则获取子弹15个
当玩家碰到弹夹时
这里other就是玩家了
按照常理
我们转换成玩家
如果是
则获得玩家的弹药数
然后加上我们捡起弹药的数量
再设置更新回子弹数量
这样子弹数就会增加了
当然这里我们还可以加上拾取的音效
play sound at location
选择播放ComplieSuccess 音效
然后播放位置
就是弹夹这个位置
get actor location
最后这个弹夹被拾取后
要消失
DestroyActor
摧毁自己
逻辑基本就是这样了
但是我们这个弹夹
还需要设置为Overlap碰撞
因为我们这里事件
是Overlap碰撞
这里我们说一下
碰撞有三种情况
触发条件是重叠
也就是能穿透
但是调用事件的就是
这个Overlap重叠
如果碰撞是会阻挡
就是Black区块
如果穿透
并且不调用任何函数
就是这个忽略Ignore
对了这里还少了执行线
我们添加一下
好
我们可以试一下
子弹数增加了
本小节的操作讲解已经完成
留给大家一个课后练习
请大家课后自己操作一下
实现弹夹获取限制
玩家子弹数小于30
才能拾取弹夹
并且玩家持有子弹数
不能超过30
例如当前子弹数为25
拾取弹夹后子弹值为30
好
本节课内容就讲解完毕
感谢大家聆听
再见
-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 小节习题
-第十二章 章节测试