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クラスの参照依存を作らずに、ゲームシステムにアクセスすることができます。