Unityでセーブデータ作成

個人的に、プロトタイプゲームを制作中にはUnityアセットを基本使用せずに作る事が多いです。
セーブデータの作成も、本開発ではアセットを使用していますが、今回はアセットを使わずUnityの仕様だけで出来るセーブデータ機能をメモとして残します。

セーブデータクラス作成

public class SaveData
{
   public int HiScore; //ハイスコアデータ保存
}

セーブデータを格納するクラスを作ります

ロードクラス作成

using System.IO; //データの読み書きに必要
using UnityEngine;

public class HiScoreData : MonoBehaviour
{
  private SaveData saveData;
  private string path;
  private int hiScore;

  private void Start()
  {
    //セーブデータ保存先
    filePath = Application.persistentDataPath + "/save.json";
         save = new saveData();
    //データ有無チェック
    if(File.Exists(path))
    {
        //データ読み込み
        StreamReader reader = new StreamReader(path);
        string data = reader.ReadToEnd();
        reader.Close();
        saveData = JsonUtility.FromJson(data);
        hiScore = saveData.HiScore;
    }
    else
    {
        //ハイスコアデータがない時は初期データを書き込む
        saveData.HiScore = 5000;  //初期ハイスコア
        string jsonData = JsonUtility.ToJson(saveData);
        StreamWriter writer = new StreamWriter(path);
        writer.Write(jsonData);
        writer.Flush();
        writer.Close();
    }
  }
}

単純なハイスコアデータの読み込みと書き込みを行う機能を作りました。
json形式に対応するデータであれば対応できます。

プロトタイプ作成や試作プロジェクトで、アセットをインストールするほどでもないがPreyerPrefsを使用したくない時の、データ保存とデータ読取に役立つかなと思い記事にしました。

コメント

タイトルとURLをコピーしました