[Unity] 簡単に端末にデータの保存ができる PlayerPrefs を紹介する
Version unity 2021.3.01.f1 で動作検証を行なっています。
ゲーム開発をしているとゲームスコアのようなちょっとしたデータを保存したいことがよくあります。
データの保存方法はいくつか方法がありますが、サーバーの実装が不要で簡単に端末にデータを保存できる PlayerPrefs という機能を紹介します。
PlayerPrefs は Key, Value でデータを保存することができます。
早速見ていきましょう。
データを保存する
データを保存するメソッドは3用意されており、それぞれ Value の型によって使い分けます。 * SetFloat() * SetInt() * SetString()
メソッド名の如く Value の型によって Float, Int, String をそれぞれ使い分けます。
PlayerPrefs.SetFloat("key_float", 1.0f); PlayerPrefs.SetInt("key_int", 1); PlayerPrefs.SetString("key_string", "1");
Save() というメソッドもありますが、上記メソッドで Save() まで行ってくれる為呼び出す必要はありません。
アプリ Crash 時などで保存に失敗したくない時などに使うことがあるそうです。
データを取得する
データの取得方法も保存時と同様に3つのメソッドが用意されています。
- GetFloat()
- GetInt()
- GetString()
これらのメソッドを使うことで key に対応するデータを取得することができます。
float f = PlayerPrefs.GetFloat("key_float"); int i = PlayerPrefs.SetInt("key_int"); string s = PlayerPrefs.SetString("key_string");
データを削除する
データの削除は2つ方法があります。
- DeleteKey()
- DeleteAll()
DeleteKey() は key に対応するデータのみ削除することができます。
DeleteAll() メソッド名の如く全てのデータを削除します。
PlayerPrefs.DeleteKey("key_float"); PlayerPrefs.DeleteAll();
データの存在を確認する
- HasKey()
HasKey() を使うことで key に対応するデータが存在していれば true 存在していなければ false を返し、存在を確認することができます。
PlayerPrefs.HasKey("key_float");
Unity Editor 上でのデータ削除方法
Unity Editor 上で保存された PlyaerPrefs を削除したいことがあるかと思うので tips として紹介しておきます。
Edit > Clear All PlayerPrefs で全ての PlayerPrefs のデータを削除することができます。