今日科技快讯
在WWDC 2023 开发者大会上,苹果宣布了其操作系统和产品的一系列升级。但最大亮点是Apple Vision Pro,苹果的首款混合现实(Mixed Reality,MR,即VR+AR)设备,一经发布就成为世界热议的焦点。“今天标志着计算技术新时代的开端。”苹果CEO库克说,“如同 Mac将我们带入个人计算时代,iPhone将我们带入移动计算时代,Apple Vision Pro将带我们进入空间计算时代。
Hello 大家好,在上一篇教程中我给大家演示了如何用 UE4 的蓝图去构建一个背包并支持拖拽丢弃道具的功能,那咱们今天就继续这个系列的教程,本篇的主题是去给玩家构建一个生命值与体力值的 HUD,当玩家遇到陷阱时会掉血,施展魔法时会损耗体力值,服用背包中的生命药水和魔法药水的时候,会恢复血量和体力值。
首先,需要准备玩家血条和体力值的资源,我这里使用的效果图如下:
image
大家可以在我的公众号中回复关键字 “血条”,来获取下载链接,
image
在编辑器里找到 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
解释一下:
接下来,将 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
解释如下:
最后,在 UseItems 事件的蓝图逻辑里去调用 Healing 函数,如图:
image
image
image
运行游戏,看下效果:
玩家血条和体力值不足的情况下,使用背包里的道具血条和体力值就得到了补充。
本文分享自 HelloWorld杰少 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!