Unityで作ったデータを保存し、次回起動時に読み込む方法です。いくつかやりかたがあるようですが、とりあえず手軽に使えるPlayerPrefsについて。
前準備

2Dで適当なスプライトとテキストを用意します。スプライトにはコライダーを設定し、
//Unity C#
using UnityEngine.UI;
public class saveTest : MonoBehaviour
{
public Text text;
public int number;
void OnMouseDown()
{
//現在の数字に+1
number = int.Parse(text.text) + 1;
//数字をテキストに表示
text.text = number.ToString();
}
}
テキストはインスペクターでセットします。

PlayerPrefs
//Unity C#
void OnMouseDown()
{
//現在の数字に+1
number = int.Parse(text.text) + 1;
//数字をテキストに表示
text.text = number.ToString();
//数字をセーブできる形式に変換
PlayerPrefs.SetInt("SaveNumber", number);
//数字をセーブ
PlayerPrefs.Save();
}
今回はInt形式のデータを保存してみます。
SetIntという命令でシリアル化という処理が必要ですが、要はデータをコンピュータ語に翻訳しています。
PlayerPrefs.SetInt(“変数名”, 数値);
String形式の数値を保存できる形式に変換(シリアル化)
PlayerPrefs.SetString(“変数名”, 文字列);
Float形式の数値を保存できる形式に変換(シリアル化)
PlayerPrefs.SetFloat(“変数名”, 数値);
PlayerPrefsにセットした変数と値のセットをセーブ
PlayerPrefs.Save();
※ゲーム終了時にもSaveは自動的に行われる。
//Unity C#
void Start()
{
//Int形式の数値をロード
number = PlayerPrefs.GetInt("SaveNumber");
//数字をテキストに表示
text.text = number.ToString();
}
このコードを実装した状態で数字を増やす→テストプレイ終了→テストプレイ開始すると、数字が全開終了時のままになっていることが確認できます。
PlayerPrefs.GetInt(“変数名”;
String形式の数値を保存できる形式に変換(シリアル化)
PlayerPrefs.GetString(“変数名”);
Float形式の数値を保存できる形式に変換(シリアル化)
PlayerPrefs.Getloat(“変数名”);



コメント