Unityで簡単にデータを保存する
2020/11/05
カテゴリー: Unity
準備
クリックした回数を保存するプログラムを作るのでカウンターテキストオブジェクト、 カウントアップボタンオブジェクト、セーブボタンオブジェクトを作成します。セーブ用のクラスを作る
セーブデータを定義するクラスを作ります。セーブしたいデータはクリックした回数だけですので、 プロパティは
Count
のみになります。using System; [Serializable] public class GameConfig { public int Count; }
カウントプログラムやセーブプログラムを作る
新たにクラスを作ります。中身はGameConfigクラスを呼び出したり、カウントアップさせたり 保存させたりの処理です。
Start関数ではロードの処理を書きます。
using System; using UnityEngine; using UnityEngine.UI; public class Test : MonoBehaviour { public GameConfig GameConfig { get; private set; } public Text Counter; void Start() { /*ロード*/ string json = PlayerPrefs.GetString("gameconfig", null); GameConfig = String.IsNullOrEmpty(json) ? new GameConfig() : JsonUtility.FromJson<GameConfig>(json); } /*カウントアップ*/ public void CountUp() { GameConfig.Count++; Counter.text = GameConfig.Count.ToString(); } /*セーブ*/ public void Save() { var json = JsonUtility.ToJson(GameConfig); PlayerPrefs.SetString("gameconfig", json); } }
スクリプトはこれだけで、残りはスクリプトを適用させたりするだけです。
オブジェクトにスクリプトを適用させる
まずは、先ほど作ったテストクラスをEventSystemオブジェクトに適用し、 Counterのところにはじめに準備したCounterテキストオブジェクトをセットします。次にCountUpボタンオブジェクトとSaveボタンオブジェクトのそれぞれのOnClickにメソッドをセットします。
これで完成しました!
完成
実行してみるとこんな感じです。しっかりと保存されてますね!