ゲームのスコアやステージなどを「セーブ」したり「ロード」したりするには「PlayerPrefs」を使うと便利です。
1. セーブのやり方
保存できる型は、int型、float型、String型の3種類で、次のように書くと保存できます。
// セーブのやり方
// 1.値をセット
PlayerPrefs.SetInt("キー値" , 保存したい値); // int型のデータを保存したい場合
PlayerPrefs.SetFloat("キー値" , 保存したい値); // float型のデータを保存したい場合
PlayerPrefs.SetString("キー値"," 保存したい値); // String型のデータを保存したい場合
// 2. ディスクへの書き込み
PlayerPrefs.Save();
// 例
PlayerPrefs.SetInt("SCORE" , 130);
PlayerPrefs.SetFloat("TIME", 10.0f);
PlayerPrefs.SetString("PLAYER", "Tokyo Taro");
PlayerPrefs.Save();
厳密にはSetInt()、SetFloat()、SetString()だけでもデータの保存は可能ですが、これだけですと、アプリを終了したタイミングでデータが保存されます。
そのため、アプリが途中でクラッシュしてしまった場合や正常に終了しなかった場合は保存されないため、確実にセーブを行いたい場合は、Save()を行うようにします。
セーブデータは端末上に保存されます。
2. ロードのやり方
ロードするにはgetを使います。
// int
int score = PlayerPrefs.GetInt("SCORE");
// float
float time = PlayerPrefs.GetFloat("TIME");
// string
string name = PlayerPrefs.GetString("PLAYER");
値が存在しない場合に初期値をセットしたい場合は、第二引数で指定します。
int score = PlayerPrefs.GetInt("SCORE", 0); // 保存データがない場合は0をセット
3. 削除のやり方
セーブしたデータを削除したい場合は、次のように書きます。
PlayerPrefs.DeleteKey("保存時にしてしたキー");
全てのデータを一度に削除したい場合は、DelerteAll()を使います。
PlayerPrefs.DeleteAll();