設定やスコアを簡単に保存しておくPlayerPrefs【Unityメモ】

今回は、Unityで「ゲーム内の設定」や「ハイスコア」などを保存しておく方法のメモです。

いくつか方法があるのですが、一番簡単(であろう)PlayerPrefsで見ていきます。

実装例

例えば、音量調整をゲーム起動のたびに設定するのはちょっといただけないですよね。前に「設定した情報は覚えておき」、次回起動時はその「覚えた情報を読み込む」これを簡単に実装していきます。

簡単に言うとセーブ・ロード機能ですかね。情報の保存先は各端末のレジストリになります。

データを記憶する(セーブ機能)

スクリプトで下記の様に書けば「Sound」というキーにsoundvol値が保存されます。

対応している型はfloat以外にはintとstring。

public float soundvol;

PlayerPrefs.SetFloat("Sound", soundvol);

データを呼び出し(ロード機能)

呼び出す場合は下記。ゲーム起動時に読み込んでセットするって感じ。

//キーが無い場合0
float soundvol = PlayerPrefs.GetFloat("Sound");

//キーが無い場合10.0f
float soundvol = PlayerPrefs.GetFloat("Sound",10.0f);

データ削除

レジストリから削除する場合は下記の様な感じ。

//全部のキーと値を削除
PlayerPrefs.DeleteAll();

//特定のキーと値のみ削除
PlayerPrefs.DeleteKey("Sound");

補足

一応、下記の様な感じでハイスコアの表示とかにも使えるけど、レジストリに値が保存してあるので、ユーザーが変更出来てしまう。あくまでもローカルゲーム限定と言う感じ。

private int Score;

PlayerPrefs.SetInt("HighScore", Score);

下記がスクリプトリファレンス。実際の保存先(レジストリ)とかも書いてあったり。

実装方法は凄く簡単だけど、利用方法はコンフィグくらいかな?と思ったり(もちろん、他にも使えなくはないけど)。

タイトルとURLをコピーしました