Class: TonGameData
ゲームの実行中データ(HP, 所持金, フラグなど)を管理するクラスです。
このクラスのインスタンスは自動的にシリアライズ(JSON化)され、セーブデータとして保存されます。
Relationship with TonSaveLoadMenu
TonGameData はリポジトリ(データコンテナ)としての役割を持ち、TonSaveLoadMenu によって操作されます。
- Save:
TonSaveLoadMenuがTon.Dataの内容を JSON ファイルに書き出します。 - Load:
TonSaveLoadMenuが JSON ファイルを読み込み、新しいTonGameDataインスタンスを生成してTon.Dataを差し替えます。
Properties
標準で以下のプロパティを持っていますが、必要に応じて自由に拡張してください。
ここに定義すべき変数とは?
「ゲームを中断して再開したときに保持しておきたい情報」はすべてここに定義します。
「ゲームを中断して再開したときに保持しておきたい情報」はすべてここに定義します。
- ⭕ 定義すべきもの: プレイヤーのレベル、HP、経験値、所持金、ストーリー進行フラグ、入手アイテムなど。
- ❌ 定義すべきでないもの:
アニメーションの再生時間、現在選択中のメニューカーソル位置、敵の一時的な座標など、シーンを切り替えたりゲームを再起動したらリセットされても良い情報。
これらは各シーンクラスやエンティティクラスのメンバ変数として管理してください。
HP / MaxHP: 体力Level / Exp: レベルと経験値Money: 所持金CurrentSceneName: 現在のシーン名(ロード後の復帰に使用)PlayerX / PlayerY: プレイヤー座標
Helper Methods
フラグや変数を安全かつ簡単に操作するためのメソッド群です。
void SetFlag(string flagName)
指定した名前のフラグをONにします。
void RemoveFlag(string flagName)
指定した名前のフラグをOFF(削除)にします。
bool CheckFlag(string flagName)
指定した名前のフラグがONになっているかを確認します。
void SetVar(string name, int val)
指定した名前の変数を設定します。
int GetVar(string name)
指定した名前の変数の値を取得します。設定されていない場合は 0 を返します。
Methods (Hooks)
void BeforeSave()
セーブ実行直前に呼ばれます。現在のプレイヤー座標をプロパティに反映するなど、保存前の準備処理を記述します。
void AfterLoad()
ロード完了直後(インスタンス差し替え後)に呼ばれます。シーンの遷移やプレイヤーの再配置など、復元処理を記述します。
Attributes
保存したくない一時的な変数には [JsonIgnore] 属性を付与してください。
[JsonIgnore]
public int BattleTempParam { get; set; }
Sample Code
// データの更新
Ton.Data.HP -= 10;
Ton.Data.SetFlag("BossDefeated");
// ロード後の復帰処理(TonGameData.cs内)
public void AfterLoad()
{
// シーン遷移
if (!string.IsNullOrEmpty(CurrentSceneName))
{
// シーン復元ロジック...
}
}