個人的に、プロトタイプゲームを制作中には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を使用したくない時の、データ保存とデータ読取に役立つかなと思い記事にしました。

コメント