# イベント
中級
プログラマー
**イベント**は、スクリプト間の通信を容易にします。**ブロードキャスター**から**レシーバー**への 1 方向のブロードキャストとして動作します。
たとえば、プレイヤーが死ぬと発生する「ゲーム オーバー」状態がゲームにあるものとします。これを処理するには、「ゲーム オーバー」イベントを作成し、イベントをリッスンしているレシーバーがあるすべてのスクリプトにブロードキャストできます。イベントがブロードキャストされると、レシーバーは適切なスクリプトを実行して、ゲーム オーバー イベントを処理します (敵のリセット、レベル オブジェクトの置換、新しいタイマーの開始、など)。
>[!NOTE]
>イベントの処理はすべてスクリプト内で行われます。Game Studio で構成することはできません。
## イベントを作成してブロードキャストする
Stride API のブロードキャスターは [EventKey](xref:Stride.Engine.Events.EventKey) 型です。ブロードキャスターは、[Broadcast](xref:Stride.Engine.Events.EventKey#Stride_Engine_Events_EventKey_Broadcast) メソッドを使用してイベントをレシーバーにブロードキャストします。
たとえば、次のコードは「ゲーム オーバー」イベントを作成します。
```cs
public static class GlobalEvents
{
public static EventKey GameOverEventKey = new EventKey("Global", "Game Over");
public static void SendGameOverEvent()
{
GameOverEventKey.Broadcast();
}
}
```
## レシーバーを作成する
Stride API のレシーバーは [EventReceiver](xref:Stride.Engine.Events.EventReceiver) 型です。
上で説明した「ゲーム オーバー」イベントを受け取るには、次のコードを使用します。
```cs
var gameOverListener = new EventReceiver(GlobalEvents.GameOverEventKey);
var gameIsOver = gameOverListener.TryReceive();
// または Async で
await gameOverListener.ReceiveAsync();
```
## 関連項目
* [スクリプトの種類](types-of-script.md)
* [スクリプトを作成する](create-a-script.md)
* [スクリプトを使用する](use-a-script.md)
* [パブリック プロパティとフィールド](public-properties-and-fields.md)
* [スケジュール設定と優先順位](scheduling-and-priorities.md)
* [デバッグ](debugging.md)
* [プリプロセッサ変数](preprocessor-variables.md)