20_199~208EchoAttributes
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的状态