Unity(C#)初心者・入門者向けチュートリアル ひよこのたまご

AndroidやiOS向けアプリを簡単に作れるゲーム開発環境Unity(ユニティ)の使い方を、チュートリアル方式で一緒に学びましょう!

【Unity開発】Player Prefs(セーブ機能)まとめ【ひよこエッセンス】

Unity5.0.0f4 Personal(2015年5月)

 

f:id:hiyotama:20150504205926p:plain

 

ひよこエッセンスの時間です〜

今回はゲームにデータをセーブする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を以下のように加筆修正して下さい〜

 

 

それでは文字を入力して、

 

f:id:hiyotama:20150522180229p:plain

 

ボタンを押して文字を表示して、

 

f:id:hiyotama:20150522180436p:plain

 

一旦ゲームを終了した後に再度実行すると・・・

 

f:id:hiyotama:20150522180436p:plain

 

ちゃんと保存されてます!

 

 

以上、ひよこエッセンスでした〜

ありがとうございました〜