【Game Creator】セーブ・ロードの仕組み

Game Creatorサムネ

セーブ・ロード対象について

Game Creatorはアクション「Save Game」を実行すると、各種変数とキャラクターの位置・向きを保存し、「Load Game」を実行した時に保存した値を読み込みます。

変数はGlobal、Local、Listの全てに対応しており、各種変数の右のチェックボックスにチェックを入れることによりセーブ・ロードの対象になります。

Game Creator_セーブ1
Game Creator_セーブ2

Character、及びPlayerはCharacterコンポーネントのAdvanced Parameters、Saveにチェックを入れることによりセーブ・ロードの対象になります。

Game Creator_セーブ3

セーブ対象を追加する方法

セーブ・ロードに開発者独自の項目を追加することができます。次のコードはキャラクターのステータスを格納することを想定したクラスです。

このクラスをゲームオブジェクトに追加してアクション「Save Game」を実行すると値を保存し、「Load Game」で実際にそのゲームオブジェクトの各値はセーブ時の値に切り替わります。

using UnityEngine;
using GameCreator.Core;

public class SaveStatus : MonoBehaviour, IGameSave
{
    [System.Serializable]
    public class StatusData
    {
        public int charaId = 0;
        public string charaName = "";
        public int Lv = 1;
        public int HP  = 0;
        public int MP = 0;
    }

    public StatusData status = new StatusData();

    public void Start()
    {
        SaveLoadManager.Instance.Initialize(this);
    }

    public string GetUniqueName()
    {
        return "SaveStatus" + status.charaId;
    }

    public System.Type GetSaveDataType()
    {
        return typeof(StatusData);
    }

    public System.Object GetSaveData()
    {
        return this.status;
    }

    public void ResetData()
    {
        this.status = new StatusData();
    }

    public void OnLoad(System.Object generic)
    {
        StatusData loadedStatus = (StatusData)generic;
        this.status = loadedStatus;
    }
}

StatusData

保存したい値を設定したクラス。System.Serializable属性を付与する必要があります。

Start

Game Creatorのセーブ・ロードを担当しているSaveLoadManagerに自身を含めるように設定します。

GetUniqueGame

一意となる文字を設定します。セーブする時に、この文字列をキーに保存し、ロードする時にこの文字列をキーに読み込みます。

今回、ステータスは複数のキャラクターを想定しているため、このクラス専用の文字列+キャラクターIDとの形にしています。するとキャラクターIDごとに値を別々に格納してくれるようになります。

Game Creator公式は、複数を想定する場合GUIDを利用することを推奨しています。

GetSaveDataType

保存する値の型を指定します。

GetSaveData

アクション「Save Game」等でセーブした時に実際に保存する値をセットします。

ResetData

値をクリアする時の処理

OnLoad

アクション「Load Game」等でロードした時に値を受け取る処理。値はObject型で取得するので、適宜型変換をして取得します。

関連リンク

参考 【Unityアセット】Game Creatorの紹介と解説 トップページゲーム開発65535 Ver2

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です