前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Unreal Engine 4 RPG 系列教程(九):Player HUD 生命值与体力值

Unreal Engine 4 RPG 系列教程(九):Player HUD 生命值与体力值

作者头像
HelloWorld杰少
发布2023-08-10 09:45:03
2500
发布2023-08-10 09:45:03
举报
文章被收录于专栏:HelloWorld杰少

今日科技快讯

在WWDC 2023 开发者大会上,苹果宣布了其操作系统和产品的一系列升级。但最大亮点是Apple Vision Pro,苹果的首款混合现实(Mixed Reality,MR,即VR+AR)设备,一经发布就成为世界热议的焦点。“今天标志着计算技术新时代的开端。”苹果CEO库克说,“如同 Mac将我们带入个人计算时代,iPhone将我们带入移动计算时代,Apple Vision Pro将带我们进入空间计算时代。


Hello 大家好,在上一篇教程中我给大家演示了如何用 UE4 的蓝图去构建一个背包并支持拖拽丢弃道具的功能,那咱们今天就继续这个系列的教程,本篇的主题是去给玩家构建一个生命值与体力值的 HUD,当玩家遇到陷阱时会掉血,施展魔法时会损耗体力值,服用背包中的生命药水和魔法药水的时候,会恢复血量和体力值。

资源准备

首先,需要准备玩家血条和体力值的资源,我这里使用的效果图如下:

image

大家可以在我的公众号中回复关键字 “血条”,来获取下载链接,

image

UI 设计

在编辑器里找到 UI 文件夹,然后右键,选择 User Interface 创建 Widget Blueprint,命名 UI_HPBar, 如图:

image

并把血条,体力值,和头像这几个图片资源导入到 Texture2D 文件夹中,如图:

image

双击打开,然后添加控件 Image, Process Bar 用于显示头像以及血条和体力值。

image

接下来去配置 Process Bar 样式,血条咱们就设计成红色吧,配置如下:

image

体力值就设计成蓝色,配置如下:

image

然后 Image 控件上配置头像图案:

image

调整控件的位置,如图:

image

最后将 HealthBar 显示,打开角色蓝图,然后在 Begin Event 事件上将其添加到视图上:

image

掉血与体力值减少

本篇教程设置了一个简单的魔法陷阱,玩家只要靠近触发碰撞就会导致受到伤害并掉血,接下来先去实现一个魔法陷阱。

新建一个 Blueprint class 选择 AActor, 然后命名为 Setup_BP 双击打开后添加一个 Sphere Collision , radius 设置为 100;再添加一个 ParticleSystem,并设置粒子效果,这里我使用了一个比较酷炫的龙卷风,最终效果如图:

image

接下来就是给其添加碰撞事件,选中 Sphere Collision,然后在右侧添加 OnComponentBeginOverlap 和 OnComponentEndOverlap 事件。

添加一个变量 IsHurt 来区分角色是否发生了碰撞。

如果角色一直站在陷阱中,则血量会一直减少,除非他跳出陷阱,这里就还需要用到 Event Tick 这个事件,最终构造的蓝图如下:

image

image

解释一下:

  1. 当 isHurt 为 true 时,玩家的生命值会每次减去 0.1 ,因为 ProcessBar 的值为 0-1
  2. 增加定时器每隔0.2s 减去0.1,不然玩家的血条的会一下子扣完
  3. 重新给玩家的血条赋值最新的数据

接下来,将 Setup_BP 拖入到场景中去,运行测试一下:

image

当玩家碰到龙卷风的时候,血条工作正常。

下来当施展魔法时该如何扣除魔法值呢!也很简单,咱们继续往下讲。

打开角色蓝图,并创建一个自定义事件 ConsumeMagic 作为消耗魔法的函数,并定义input 的参数 consume 为 float 类型,然后构建其蓝图如下:

image

当调用该事件的时候,输入需要扣除的魔法值,则玩家的魔法条就会减少。于是我们就在施展魔法的蓝图逻辑中去调用 ConsumeMagic,如图所示:

施展远程魔法

原地施展魔法

运行下游戏,如图:

image

可以看到体力值会随着施展魔法而减少。

回血与体力值增加

接下来继续实现回血与补充体力值的功能。角色背包中的道具可以用来给玩家回血与补充体力,之前我们在背包中加了消耗道具的功能,只要在这功能上继续增加一点逻辑就可以实现这部分的功能了。

假设道具 Health_BP 和 Misc_BP 是回血的,道具 Regen_BP 和 RedJuice_BP 是补充体力值的。

打开 UI_Inventory 蓝图,新增一个函数 Healing, 如图:

image

输入参数定义如图:

image

构建 Healing 函数的蓝图逻辑,如下:

image

解释如下:

  1. 根据输入参数的类型,通过 Switch 节点来区分是回血还是补充体力
  2. 通过 Switch 的分流来给角色的生命值和体力值更新数值然后再刷新HealthBar

最后,在 UseItems 事件的蓝图逻辑里去调用 Healing 函数,如图:

image

image

image

运行游戏,看下效果:

玩家血条和体力值不足的情况下,使用背包里的道具血条和体力值就得到了补充。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 HelloWorld杰少 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 资源准备
  • UI 设计
  • 掉血与体力值减少
  • 回血与体力值增加
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档