Unityでセーブ機能を使えたなっという状況は多々ありますが、Unityが用意してくれているPlayerPrefsを使うと簡単にセーブ&ロードが使えるようになります。
使い方
セーブをする関数は全部で3種類あります。
またロードするときも3種類用意されています。
セーブ
- PlayerPrefs.SetInt("使いたいString名前指定",0);
- PlayerPrefs.SetFloat("使いたいString名前指定",1.0f);
- PlayerPrefs.SetString("使いたいString名前指定","ここには何もいない");
ロード
- PlayerPrefs.GetInt("セーブで使用したString名前指定");
- PlayerPrefs.GetFloat("セーブで使用したString名前指定");
- PlayerPrefs.GetString("セーブで使用したString名前指定");
ロードの場合はセーブで使用しているStringがなければ第二引数が使用され、第二引数を指定しなければFloatおよびIntは0が入り、Stringだと空(null)が入ります。
特に指定がなければ何も書かなくてもOK。
サンプルコード
public string stringTest="TestKey";
public int intTest;
public void TestIntSave()
{
PlayerPrefs.SetInt(stringTest , 50);
PlayerPrefs.Save();
}
public void TestIntLoad()
{
intTest = PlayerPrefs.GetInt(stringTest);
}
これを適当なUIボタンに設定して実行するとセーブとロードが使えるようになります。
この場合はintTestに50の値が入ります。
セーブとロードが使えるようになると各種パラメーターの保存やスコアなどが保存できるようになります。
デメリット
- 保存する容量が少ない。
- 暗号化してないのでわかる人にはデータがまるわかり。
- セーブする場所を選べない。
個人開発なら特に問題ないですが中、大規模開発になると個人情報駄々洩れで特にネットゲーム作りたいなら暗号化は必須。
その場合はPlayerPrefsを使わずに外部のアセットに頼ってしまいましょう。
結構お高いので大規模開発出来るまでは買わなくていいかも。
まとめ
セーブとロードを自由自在に使えるようになると作れるゲームの幅が広がり競争要素が簡単に実装できるのでぜひとも取得してみましょう。
もっと詳しく見たいなら公式サイトを確認しよう。