【深入AGMaker】スクリプト断片 - カスタムのセーブとロード動作

スクリプトの動作

GDScript で AGMakerManager の 2 つの固有シグナルを監視する方法を実演します。

要点

  1. AGMakerManager には on_savedon_loaded という 2 つの固有シグナルが存在します。
  2. VS でセーブまたはロードアクションを呼び出すと、これらのシグナルがトリガーされ、現在のファイルスロットを示す整数型のパラメータ slot_index が提供されます。
  3. これらのシグナルを利用することで、GameObject の生存周期に依存しないカスタムセーブおよびロード動作を作成できます。
  4. 以下のスクリプトをシーンツリー内の任意の Node ノードにアタッチします。その後、任意の GameObject の VS スクリプトで「ゲームの保存」および「ゲームの読み込み」アクションを実行すると、コンソールに関連するテキストが出力されます。
  5. この方法は、保存データをカスタマイズする必要がある場合に特に適しています。例えば、データベースから特定のデータを選択的に抽出したり、AGM システム以外の Godot ネイティブデータを AGM のセーブ/ロード完了後に追加で保存・復元する場合などが挙げられます。
  6. シリアライズとデシリアライズ(データをディスクに保存し、読み出す)の具体的な方法については、サンプルコードに記載されている Godot ドキュメントリンクを直接参照してください。

核心

extends Node

func _ready() -> void:
    AGMakerManager.on_saved.connect(_on_agm_saved)
    AGMakerManager.on_loaded.connect(_on_agm_loaded)

func _on_agm_saved(slot_index: int):
    print("on_agm_saved: slot = ", slot_index)
    # ここで任意の処理を実行できます。
    # 例:
    # https://docs.godotengine.org/en/stable/tutorials/io/saving_games.html#saving-and-reading-data
    pass

func _on_agm_loaded(slot_index: int):
    print("on_agm_loaded: slot = ", slot_index)
    # ここで任意の処理を実行できます。
    pass
「いいね!」 1