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