【Unity】 セーブ/ロードを実装 PlayerPrefs
目次
Unityでデータを保存するには?
ゲームのスコアなどを「セーブ・ロードしたい」といったことありませんか?
その際に使用できるのがUnityの「PlayerPrefs」という機能です!
スコアなどの単純なデータであれば、PlayerPrefsを使用できます。
PlayerPrefsで保存できる型
下記の3つの型でセーブ・ロードが可能です。
- int
- float
- string
セーブ
値の設定
- int : PlayerPrefs.SetInt("保存キー", 保存するデータ);
- float : PlayerPrefs.SetFloat("保存キー", 保存するデータ);
- string : PlayerPrefs.SetString("保存キー", 保存するデータ);
※これを呼んだだけではまだ値はディスクには書き込まれていない。
ディスクへの書き込み
PlayerPrefs.Save();
※ 呼ばなくてもアプリ終了時に保存されるが、
アプリがクラッシュした際は保存されないようなので定期的に保存した方が良さげ。
使用例
// int型で保存 int score = 999; PlayerPrefs.SetInt("SCORE", score); // float型で保存 float time = 1.0f PlayerPrefs.SetInt("TIME", time); // string型で保存 string name = "Hoge"; PlayerPrefs.SetInt("SCORE", name); // ディスクへの書き込み PlayerPrefs.Save()
ロード
- int : PlayerPrefs.GetInt("保存時のキー", 値が保存されていない際の値);
- float : PlayerPrefs.GetFloat("保存時のキー", 値が保存されていない際の値);
- string : PlayerPrefs.GetString("保存時のキー", 値が保存されていない際の値);
// int int score = PlayerPrefs.GetInt("SCORE", 0); // float float time = PlayerPrefs.GetFloat("TIME", 0f); // string string name = PlayerPrefs.GetString("NAME", "NONE");
削除
キーを指定して削除
PlayerPrefs.DeleteKey("保存時にしてしたキー");
全削除
PlayerPrefs.DeleteAll();
// キーを指定して削除 PlayerPrefs.DeleteKey("SCORE"); PlayerPrefs.DeleteKey("TIME"); PlayerPrefs.DeleteKey("NAME"); // 全削除 PlayerPrefs.DeleteAll();