Unityでデータをセーブする方法(PlayerPrefs)保存、取得、削除、データの有無判定について
今回はUnityでデータをセーブする方法を書いていきます。
まず、セーブ方法には下記の4点が挙げられます。
1.PlayerPrefs
2.Json Serialization
3.Binary Serialization
4.Database
今回は1.PlayerPrefsについて書いていきます。
PlayerPrefsの使い方
PlayerPrefsクラスを使用するためには、まず「using UnityEngine」を追加します。
PlayerPrefsは実装が簡単な一方で、
大量のデータを保存できないというデメリットを兼ね備えています。
小規模なゲームであれば全然問題ないです。
データの保存
下記のように使うことで、データをシンプルなKey-Value形式で保存できます。
PlayerPrefs.SetInt("highScore", score);
PlayerPrefs.Save();
上記の例では、"highScore"という名前で変数scoreのデータを保存しました。
PlayerPrefs.SetStringを呼び出すと、指定されたKey名でValue値がメモリ内に保存されます。
PlayerPrefs.Saveを呼び出すと、メモリ内の値がディスクに書き込まれます。
これにより、Key-Valueのペアが永続化され、次回起動時にも同じ値を取得することができます。
保存できる型は下記の通りです。
メソッド | 保存値の型 |
---|---|
SetIntメソッド | 整数値 (int) |
SetFloatメソッド | 浮動小数点数 (float) |
SetStringメソッド | 文字列 (string) |
データの取得
保存したデータは、
下記のようにKeyを指定することで、データを読み込むことができます。
int highScore = PlayerPrefs.GetInt("highScore");
上記の例では、"highScore"という名前で保存しているデータを読み込み、highScoreに代入しました。
取得できる型は下記の通りです。
メソッド | 保存値の型 |
---|---|
GetIntメソッド | 整数値 (int) |
GetFloatメソッド | 浮動小数点数 (float) |
GetStringメソッド | 文字列 (string) |
データの削除
データの削除には、
一部のデータを削除する方法と全てのデータを削除する方法があります。
一部データの削除
下記のように、Keyを指定して一部のデータだけ削除できます。
PlayerPrefs.DeleteKey("highScore");
PlayerPrefs.Save();
PlayerPrefs.Saveを呼び出すと、メモリ内の値がディスクに書き込まれます。
全てのデータの削除
また下記のように、DeleteAllメソッドを使うことで、全てのデータを削除もできます。
PlayerPrefs.DeleteAll();
PlayerPrefs.Save();
PlayerPrefs.Saveを呼び出すと、メモリ内の値がディスクに書き込まれます。
ちなみにUnityのEdit>Clear All PlayerPrefsからも消すことができます。
データの判定
PlayerPrefsにデータがあるかどうかの判定は、下記のようにします。
if (PlayerPrefs.HasKey("highScore"))
{
// highScore の値を取得する
int highScore = PlayerPrefs.GetInt("highScore");
}
else
{
// データが存在しない場合の処理
}
「PlayerPrefs」クラスの「HasKey」メソッドを使用することで、PlayerPrefsにデータがあるかどうかの判定ができます
コメント
0 件のコメント :
コメントを投稿