欢迎光临散文网 会员登陆 & 注册

20_199~208EchoAttributes

2023-03-24 17:36 作者:俯瞰万千风景  | 我要投稿

199 Echo's Health

Dealing Damage to Echo

给EchoCharacter添加TakeDamage方法

从Enemy复制takeDamage方法


HandleDamage是在BaseCharacter类中

200 添加界面血条

导入教程给的贴图

可以是用这个操作对批量文件进行属性编辑

创建一个用户控件蓝图

然后在关卡蓝图中添加控件

继续在界面上添加控件

201 Slash Overlay

creating a C++ class for the overlay widget使用C++创建控件

确保WBP控件中的名称


创建一个C++类,继承自UserWidget

编译之后,在WBP控件中,将WBP的父类设置为新建的C++类


202 Slash HUD

Creating a C++ Class for the Game HUD

在我们的自定义模式蓝图中,替换掉默认的HUD蓝图创建一个HUD蓝图


删除关卡蓝图中,显示HUD的节点,我们在HUD蓝图中使用这个节点

在游戏模式蓝图中,HUD替换为我们创建的HUD蓝图

编译保存,运行游戏后可以看到界面显示与之前一直

接下来我们使用C++的方式创建这个HUD蓝图类

创建一个HUD类的C++类,MainHUD,继承beginplay方法,创建MainInterface对象并且将其显示在界面上


203 Setting the HUD From C++  从C++中设置HUD

Initializing our HUD variables from C++从C++中初始化我们的HUD变量


在EchoCharacter类中的BeginPlaye方法中设置HUD

首先需要取得PlayerController

然后通过Playercontroller->GetHUD 获得MainHUD


204 Updating HUD Health更新HUD的健康状况

updating the Health Bar When Taking Damage更新受到伤害时的健康条

在takedamage方法中 更新血条


编译之后,在游戏中收到敌人的攻击,我们的血条就会实时变化了

接下来我们要解决血量归0之后,不能移动,但是可以跳跃的问题

我们需要创建自己的Jump方法,在Jump中判断如果死亡,则不能跳动


205 Echo's Death MontageEcho的死亡蒙太奇

Creating the Montage for Echo为Echo制作蒙太奇

添加了死亡动画,与之前的教程内容相同

206 Playing Echo's Death Montage播放Echo的死亡蒙太奇

Playing the Montage On Death播放关于死亡的蒙太奇

将playMontage方法移动到了BaseCharacter类中,继承了Enemy中的方法,这样Enemy和EchoCharacter都可以使用

Die中的方法也提升到了BaseCharacter

在EchoCharacter中重写die方法,并给角色添加了一个Death的状态,在Die中将玩家状态重置为Death


在动画蓝图ABP_Amy_Main中进行设置,规则与Enemy相同

然后添加AnimInstance中新增的DeathPose

207 Stop Enemy Attacks停止敌人的攻击

It's Back to Patrolling, I Guess

用标签来实现这个功能,让敌人在攻击的时候,检查目标的标签是否为Dead


然后自己死亡之后,将自己的标签设置为Dead

同时,可以在Enemy在SeenPawn的方法中,加入判断,防止死亡之后,敌人依然过来检查尸体

在EchoCharacter,移动、跳跃中添加一下判断Death的状态

208小结


20_199~208EchoAttributes的评论 (共 条)

分享到微博请遵守国家法律