Table of Contents

イベント

中級 プログラマー

イベントは、スクリプト間の通信を容易にします。ブロードキャスターからレシーバーへの 1 方向のブロードキャストとして動作します。

たとえば、プレイヤーが死ぬと発生する「ゲーム オーバー」状態がゲームにあるものとします。これを処理するには、「ゲーム オーバー」イベントを作成し、イベントをリッスンしているレシーバーがあるすべてのスクリプトにブロードキャストできます。イベントがブロードキャストされると、レシーバーは適切なスクリプトを実行して、ゲーム オーバー イベントを処理します (敵のリセット、レベル オブジェクトの置換、新しいタイマーの開始、など)。

Note

イベントの処理はすべてスクリプト内で行われます。Game Studio で構成することはできません。

イベントを作成してブロードキャストする

Stride API のブロードキャスターは EventKey 型です。ブロードキャスターは、Broadcast メソッドを使用してイベントをレシーバーにブロードキャストします。

たとえば、次のコードは「ゲーム オーバー」イベントを作成します。

public static class GlobalEvents
{
    public static EventKey GameOverEventKey = new EventKey("Global", "Game Over");

    public static void SendGameOverEvent()
    {
        GameOverEventKey.Broadcast();
    }
}

レシーバーを作成する

Stride API のレシーバーは EventReceiver 型です。

上で説明した「ゲーム オーバー」イベントを受け取るには、次のコードを使用します。

var gameOverListener = new EventReceiver(GlobalEvents.GameOverEventKey);
var gameIsOver = gameOverListener.TryReceive();

// または Async で
await gameOverListener.ReceiveAsync();

関連項目