UE5でFPSゲーム制作 Part22-スタートとゴール
前々回Battle Manager SubsystemにEnemy Countという変数を作りました。ワールド内の敵キャラクターがやられると、この数字は減っていきます。そしてこの数字が0になったときに、通知がいくようになればゴールが作れます。
イベントディスパッチャー
1つ以上のイベントをイベントディスパッチャーへ結合すると、イベントディスパッチャーの呼び出し時にこれらのイベントを一度に発行できます。
ゴール時には音楽やUIなどいろいろなクラスを呼ぶ可能性が高いので、ゴール時用のイベントディスパッチャーを作っておきます。
BattleManagerSubsystem.h
BattleManagerSubsystem.cpp
On Enemy ClearというイベントとOn Stage Clearというイベントを作成します。
Enemy CountはAddやSetで調整することができ、0になったときはEnemy Clearが呼ばれます。
FPSゲームにおいて敵の撃破がフラグとなる場合というのはとても多いと思います。Reduceのタイミングで新しいイベントを用意するなどすれば、増援やイベント進行など様々な使い方ができるものになります。
BP_StartArea
新規BPからActorを選択し、BP_StartAreaと名付けます。
Boxコリジョンを親とするこのアクターからOverlapイベントでSet Enemy Countを登録します。
新規BPからActorを選択し、BP_StageManagerと名付けます。
BP_StageManager
On Enemy Clear EventとOn Stage Clear Eventにイベントをバインドします。
追加の敵やイベントが発生しないので、Enemy ClearのカスタムイベントからStage Clearを呼び出します。
敵キャラクターとBP_StartAreaとBP_StageManagerをレベル上に配置することで、ゲームのスタートからクリアまでの流れがひとまず完成することになります。