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にメソッドをセットします。


これで完成しました!
完成
実行してみるとこんな感じです。
しっかりと保存されてますね!
GitHub