キューバに行ってみたい

ゲーム開発とかWeb開発とか

[Unity] 簡単に端末にデータの保存ができる PlayerPrefs を紹介する

Version unity 2021.3.01.f1 で動作検証を行なっています。

ゲーム開発をしているとゲームスコアのようなちょっとしたデータを保存したいことがよくあります。

データの保存方法はいくつか方法がありますが、サーバーの実装が不要で簡単に端末にデータを保存できる PlayerPrefs という機能を紹介します。

docs.unity3d.com

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 のデータを削除することができます。