20_199~208EchoAttributes
199?Echo's Health
Dealing Damage to Echo
給EchoCharacter添加TakeDamage方法
從Enemy復(fù)制takeDamage方法

HandleDamage是在BaseCharacter類中
200?添加界面血條
導(dǎo)入教程給的貼圖
可以是用這個(gè)操作對(duì)批量文件進(jìn)行屬性編輯

創(chuàng)建一個(gè)用戶控件藍(lán)圖

然后在關(guān)卡藍(lán)圖中添加控件

繼續(xù)在界面上添加控件

201?Slash Overlay
creating a C++ class for the overlay widget使用C++創(chuàng)建控件
確保WBP控件中的名稱

創(chuàng)建一個(gè)C++類,繼承自UserWidget
編譯之后,在WBP控件中,將WBP的父類設(shè)置為新建的C++類
202?Slash HUD
Creating a C++ Class for the Game HUD
在我們的自定義模式藍(lán)圖中,替換掉默認(rèn)的HUD藍(lán)圖創(chuàng)建一個(gè)HUD藍(lán)圖

刪除關(guān)卡藍(lán)圖中,顯示HUD的節(jié)點(diǎn),我們?cè)贖UD藍(lán)圖中使用這個(gè)節(jié)點(diǎn)

在游戲模式藍(lán)圖中,HUD替換為我們創(chuàng)建的HUD藍(lán)圖

編譯保存,運(yùn)行游戲后可以看到界面顯示與之前一直
接下來我們使用C++的方式創(chuàng)建這個(gè)HUD藍(lán)圖類
創(chuàng)建一個(gè)HUD類的C++類,MainHUD,繼承beginplay方法,創(chuàng)建MainInterface對(duì)象并且將其顯示在界面上
203?Setting the HUD From C++??從C++中設(shè)置HUD
Initializing our HUD variables from C++從C++中初始化我們的HUD變量
在EchoCharacter類中的BeginPlaye方法中設(shè)置HUD
首先需要取得PlayerController
然后通過Playercontroller->GetHUD 獲得MainHUD
204?Updating HUD Health更新HUD的健康狀況
updating the Health Bar When Taking Damage更新受到傷害時(shí)的健康條
在takedamage方法中 更新血條
編譯之后,在游戲中收到敵人的攻擊,我們的血條就會(huì)實(shí)時(shí)變化了
接下來我們要解決血量歸0之后,不能移動(dòng),但是可以跳躍的問題
我們需要?jiǎng)?chuàng)建自己的Jump方法,在Jump中判斷如果死亡,則不能跳動(dòng)
205?Echo's Death MontageEcho的死亡蒙太奇
Creating the Montage for Echo為Echo制作蒙太奇
添加了死亡動(dòng)畫,與之前的教程內(nèi)容相同
206?Playing Echo's Death Montage播放Echo的死亡蒙太奇
Playing the Montage On Death播放關(guān)于死亡的蒙太奇
將playMontage方法移動(dòng)到了BaseCharacter類中,繼承了Enemy中的方法,這樣Enemy和EchoCharacter都可以使用
Die中的方法也提升到了BaseCharacter
在EchoCharacter中重寫die方法,并給角色添加了一個(gè)Death的狀態(tài),在Die中將玩家狀態(tài)重置為Death
在動(dòng)畫藍(lán)圖ABP_Amy_Main中進(jìn)行設(shè)置,規(guī)則與Enemy相同

然后添加AnimInstance中新增的DeathPose

207?Stop Enemy Attacks停止敵人的攻擊
It's Back to Patrolling, I Guess
用標(biāo)簽來實(shí)現(xiàn)這個(gè)功能,讓敵人在攻擊的時(shí)候,檢查目標(biāo)的標(biāo)簽是否為Dead
然后自己死亡之后,將自己的標(biāo)簽設(shè)置為Dead
同時(shí),可以在Enemy在SeenPawn的方法中,加入判斷,防止死亡之后,敵人依然過來檢查尸體
在EchoCharacter,移動(dòng)、跳躍中添加一下判斷Death的狀態(tài)