マルチプレイヤー ゲーム モードのテストは、関与するプレイヤー数が多いために難しい場合があります。また、他に一緒にプレイできる人がいるとは限りません。このゲーム モードの場合は、セントリーの仕掛けを使用することによってシングルプレイヤー環境で撃破をテストすることができます。セントリーにはサブスクライブできる EliminatedEvent があるため、撃破のコードのテスト目的で、セントリーが敵プレイヤーの役割を果たすことができます。
次の手順に従って、セントリーへの撃破を達成したプレイヤーに武器を付与します。
-
新しいメソッド
TestPlayerEliminatedをteam_elimination_gameクラスに追加します。このメソッドは、セントリーが撃破されるたびに呼び出されます。TestPlayerEliminated(Agent : ?agent) : void = Print("Sentry Down!") -
TestPlayerEliminated内で、セントリーがプレイヤーによって撃破されたかどうかチェックし、そうであれば撃破したプレイヤーをGiveNextWeaponに渡します。TestPlayerEliminatedはすでにエージェント オプションを引数として受け取るようになっているため、どのプレイヤーがこの撃破を達成したかを暗黙的に知ることができます。TestPlayerEliminated(Agent: ?agent) : void = Print("Sentry Down!") if(TeamPlayer := Agent?): GiveNextWeapon(TeamPlayer) -
OnBegin内で、新しいforループ を追加し、TestPlayerEliminatedを使用して各セントリーのEliminatedEventにサブスクライブします。OnBeginのコードは次のようになっているはずです。OnBegin<override>()<suspends> : void = set Teams = GetPlayspace().GetTeamCollection().GetTeams() set EliminationsToEndGame = WeaponGranters.Length Logger.Print("Number of eliminations to end game is {EliminationsToEndGame}") Logger.Print("Beginning to assign players") PopulateTeamsAndPlayers() for (Spawner : PlayerSpawners): Spawner.SpawnedEvent.Subscribe(OnPlayerSpawn) # 各プレイヤー スポーン パッドにサブスクライブします for (Sentry : Sentries): Sentry.EliminatedEvent.Subscribe(TestPlayerEliminated) # 各セントリーにサブスクライブします # ゲームに参加した新しいプレイヤーにサブスクライブします。 GetPlayspace().PlayerAddedEvent().Subscribe(OnPlayerAdded)
Visual Studio Code でスクリプトを保存してコンパイルし、UEFN ツールバーの [Launch Session (セッションを起動)] をクリックしてレベルをプレイテストします。敵プレイヤーまたはセントリーへの撃破を達成すると、次の武器に昇格します。マルチプレイヤー設定でテストを行うと、「5. 撃破で武器を付与する」で概説した 2 つのルールに従って昇格が行われます。シーケンスの最終武器まで昇格して撃破すると、撃破したプレイヤーが勝者となってゲームが終了します。

最終結果
このチュートリアルの 最終ステップ では、このチュートリアルの完全なスクリプトを確認します。