UE5でFPSゲーム制作 Part21-体力とコンポーネントの追加

Apply Damageで銃からダメージを与えると、Any Damageというイベントでダメージを数字として受け取ります。

ステータスを作る

新規C++クラスからActor Componentを選択し、StatusComponentと名付けます。

StatusComponent.h

StatusComponent.cpp

CharacterBase.h

CharacterBaseクラスにStatusComponentクラスを追加します。TakesDamage関数とOnDied関数を用意します。

TakesDamage関数はダメージの処理を行っており、体力が0になったらOnDied関数が呼ばれます。OnDiedはBlueprintImplementableEventなので中身はブループリントで書いていきます。

 

新規ブループリントクラスからEnemyCharacterを継承してBP_EnemyDollというキャラクターを作ります。

BP_EnemyDoll

ダメージを受けると、Takes Damage関数でダメージの計算が行われたあと、体力が0になったらOn DiedイベントからBattle Manager SubsystemのReduce Enemy Countを呼びます。

 

 

Subsystemはどこからでも呼び出せるためBPクラスの参照依存を作らずに、ゲームシステムにアクセスすることができます。