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