【Unity開発】Player Prefs(セーブ機能)まとめ【ひよこエッセンス】
Unity5.0.0f4 Personal(2015年5月)
ひよこエッセンスの時間です〜
今回はゲームにデータをセーブするPlayer Prefsという機能について解説します〜
Player Prefs(セーブ機能)まとめ
①Player Prefsの基本的な使い方
Player Prefsクラスを使うと、int型,float型,string型のデータを各端末に保存することができます〜
データを特定するために保存キーを第一引数に指定するのが基本的なルールとなっていて、これは文字列ならなんでもOKです~
それでは具体的に見ていきましょう~
保存する時は
PlayerPrefs.SetInt(string key, int i);
PlayerPrefs.SetFloat(string key, float f);
PlayerPrefs.SetString(string key, string s);
データを読み込む時は
int i =PlayerPrefs.GetInt(string key);
float f =PlayerPrefs.GetFloat(string key);
string s =PlayerPrefs.GetString(string key);
で、読み込むことができます〜
ちなみにデータを読み込もうとしたけどデータが存在しないという場合は、GetIntなどの第2引数にデフォルト値を設定しておくと、その値を変数に保存します〜ゲームをダウンロードして初めて起動した時などはまだ一度もデータを保存していないため、この対応が必要となってきます〜
【例】
int highScore = PlayerPrefs.GetInt ("HighScoreKey", 0);
この場合HighScoreKeyというキーワードで保存されたことが一度も無かったら、
変数highScoreには0が入ります〜
②Player Prefsのその他の使い方
SetInt等で保存されるのは、実際にはアプリケーション終了時であり、不具合等でアプリが落ちた時にはセーブされていない可能性があります〜
アプリ終了前のタイミングでデータを保存したい時はSetInt等で保存後、
PlayerPrefs.Save();
を実行してください〜
しかしSaveはSetIntに比べ負荷が高いため、必要なタイミングでのみ使用することをオススメします〜
その他にも特定の保存キーを削除する
PlayerPrefs.DeleteKey(string key);
キーが存在するかを確認する
bool b =PlayerPrefs.HasKey(string key);
全てのデータを削除する
PlayerPrefs.DeleteAll();
などの便利機能がありますので、ご活用下さい〜
③具体的に使ってみる
それでは具体的に使ってみましょう〜以下のエッセンスで行ったチュートリアルに付け足す形で進めていきたいと思います〜
Buttonオブジェクトに付いているSaveScriptを以下のように加筆修正して下さい〜
それでは文字を入力して、
ボタンを押して文字を表示して、
一旦ゲームを終了した後に再度実行すると・・・
ちゃんと保存されてます!
以上、ひよこエッセンスでした〜
ありがとうございました〜