# スクリプトの種類 初級 プログラマー Stride のスクリプトの主要な種類は、**スタートアップ スクリプト**、**同期スクリプト**、**非同期スクリプト** の 3 種類です。 スクリプトを作成するときは、ニーズに最適な動作を持つスクリプトの種類から継承します。 ## スタートアップ スクリプト スタートアップ スクリプトは、実行時に追加または削除されたときにのみ実行します。主として、ゲーム要素の初期化 (キャラクターの生成など) およびシーンがアンロードされるときのゲーム要素の破棄に使用されます。初期化用の [Start](xref:Stride.Engine.StartupScript.Start) メソッドと、[Cancel](xref:Stride.Engine.ScriptComponent.Cancel) メソッドを持っています。どちらのメソッドも必要に応じてオーバーライドできます。 例: ```cs public class StartUpScriptExample : StartupScript { public override void Start() { // 初期化の間の処理を行う } } ``` ## 同期スクリプト 同期スクリプトは、初期化された後、フレームごとに更新され、最終的にキャンセルされます (スクリプトが削除されるとき)。 * 初期化コードがある場合は、[Start](xref:Stride.Engine.StartupScript.Start) メソッドに記述します。 * 更新を実行するコードは、[Update](xref:Stride.Engine.SyncScript.Update) メソッドに記述します。 * キャンセルを実行するコードは、[Cancel](xref:Stride.Engine.ScriptComponent.Cancel) メソッドに記述します。 次のスクリプトは、無条件に、すべてのフレームで更新を実行します。 ```cs public class SampleSyncScript : SyncScript { public override void Update() { // エンティティに対する更新を実行する。このコードはすべてのフレームで実行される } } ``` ## 非同期スクリプト 非同期スクリプトは、1 回だけ初期化された後、シーンから削除されるときにキャンセルされます。 * 非同期コードは、[Execute](xref:"Stride.Engine.AsyncScript.Execute") 関数に記述します。 * キャンセルを実行するコードは、[Cancel](xref:Stride.Engine.ScriptComponent.Cancel) メソッドに記述します。 次のスクリプトは、イベントとトリガーに応じたアクションを実行します。 ```cs public class SampleAsyncScript : AsyncScript { public override async Task Execute() { // 必要がある場合は、初期化コードをここに記述する while (Game.IsRunning) // ゲームが終了するまでループする (スクリプトに応じてオプション) { await MyEvent; // 何らかの処理を実行する await Script.NextFrame(); // 次のフレームを待機する (スクリプトに応じてオプション) } } } ``` ## 関連項目 * [スクリプトを作成する](create-a-script.md) * [スクリプトを使用する](use-a-script.md) * [パブリック プロパティとフィールド](public-properties-and-fields.md) * [スケジュール設定と優先順位](scheduling-and-priorities.md) * [イベント](events.md) * [デバッグ](debugging.md) * [プリプロセッサ変数](preprocessor-variables.md)