PlayerPrefs

概要

PlayerPrefsはハイスコアなどのゲームが終了しても
保持しておきたい数値を保存することができる機能です。

設定方法

PlayerPrefsにデータを設定するにはSetFloatSetIntSetString関数があります。
この中で保存したいデータに該当するデータ型を選択します。

SetFlaotメソッド仕様

メソッド名 SetFloat 戻り値: なし 引数: string key 登録キー float val 設定する値 内容: PlayerPrefsに登録キーの名前で値を設定する 例: PlayerPrefs.SetFloat("Score", 100.0f);

SetIntメソッド仕様

メソッド名: SetInt 戻り値: なし 引数: string key 登録キー int val 設定する値 内容: PlayerPrefsに登録キーの名前で値を設定する 例: PlayerPrefs.SetInt("Score", 100);

SetIntメソッド仕様

メソッド名: SetString 戻り値: なし 引数: string key 登録キー string val 設定する値 内容: PlayerPrefsに登録キーの名前で値を設定する 例: // HighScoreとして0の値を設定する PlayerPrefs.SetString("Name", "山田");

取得方法

PlayrePrefsに保存されている値を取得するには GetFloatGetIntGetString関数を使用します。 値が保存されていない場合の戻り値は 引数で指定することができます。

GetFloatメソッド仕様

メソッド名: GetFloat 戻り値: PlayerPrefsにkeyがある => 設定されている値 PlayrePrefsにkeyがない => default_val 引数: string key: 登録キー float defualt_val: keyがなかった場合の値 内容: PlayrePrefsに登録されている登録キーの floatデータを取得する 例: float score = PlayrePrefs.GetFloat("Score", 0.0f); if (score == 0.0f) { // Score未登録 } else { // Score登録済み }

GetIntメソッド仕様

メソッド名: GetInt 戻り値: PlayerPrefsにkeyがある => 設定されている値 PlayrePrefsにkeyがない => default_val 引数: string key: 登録キー int defualt_val: keyがなかった場合の値 内容: PlayrePrefsに登録されている登録キーの intデータを取得する 例: int score = PlayrePrefs.GetInt("Score", -1); if (score == -1) { // Score未登録 } else { // Score登録済み }

GetStringメソッド仕様

メソッド名: GetString 戻り値: PlayerPrefsにkeyがある => 設定されている値 PlayrePrefsにkeyがない => default_val 引数: string key: 登録キー string defualt_val: keyがなかった場合の値 内容: PlayrePrefsに登録されている登録キーの stringデータを取得する 例: string name = PlayrePrefs.GetString("Name", ""); if (name == "") { // Name未登録 } else { // Name登録済み }

登録キーチェック

登録キーが使用されているか否かを事前にチェックしたい場合は HasKey関数を使用します。

HasKeyメソッド仕様

メソッド名: HasKey 戻り値: keyが登録済み => true keyが未登録 => false 引数: string key 確認したい登録キー 内容: PlayerPrefsに引数のキーが登録されているかを判断する 例: if (PlayerPrefs.HasKey("Score") == true) { Debug.Log("Scoreキーは登録されてる"); }

保存方法

Set***関数を使用した場合PlayerPrefsにデータが設定されますが、 この状態ではまだ、PCやスマホに保存されておらず、 ゲーム中、グローバル変数のようにどこからでも使用できるだけの状態です。 PCやスマホに保存して次回からもPlayerPrefsで設定した値を使用するためには Save関数を使用してデータを保存する必要があります。

Saveをしなかったら

保存しないと記述しておりますが、実際にはアプリケーションを終了する際に Saveは自動的に呼び出されます。 ただ、呼び出しは正常に終了した場合に限りますので、 確実に保存させるならば、スクリプト上で実行して下さい。

Saveメソッド仕様

メソッド名: Save 戻り値: なし 引数: なし 内容: PlayerPrefsのデータを保存する 例: // HighScoreに0を設定 PlayerPrefs.setInt("HighScore", 0); // PlayerPrefsのデータを保存する PlayerPrefs.save();

削除方法

PlayerPrefsの保存されたデータは一度作成すると 開発側で削除処理を行わない限り消えることはありません。 削除方法はPlayerPrefs全てを消す方法と、 指定したキーだけを削除する方法があります。 ※削除を実行した場合、自動的にsaveも行われます。

全体削除

全体削除は「DeleteAll」メソッドを使用します

DeleteAllメソッド仕様

メソッド名: DeleteAll 戻り値: なし 引数: なし 内容: PlayerPrefsのデータを全て削除する 例: // PlayerPrefsのデータを全て削除する PlayerPrefs.DeleteAll();

単体削除

単体削除ではDeleteKeyを使用します。 メソッド名: DeleteKey 戻り値: なし 引数: string key 削除したい登録キー 内容: 引数でしたキーをPlayerPrefsから削除する 例: // HighScoreをPlayerPrefsから削除する PlayerPrefs.DeleteKey("HighScore");

保存テクニック

intよりも大きな数値を保存したい場合はstringを利用して保存を行います。
	

設定方法

設定にはlong変数のToString関数を使用します。 ToStringは変数に格納されている値をstring型に変換してくれる関数です。

ToStringメソッド仕様

メソッド名: ToString 戻り値: 数値を変換した文字列 引数: なし 内容: 変数の値に格納されている値を文字列に変換する 例1: long val = 0; // 0 => "0"に変換 string str = val.ToString(); Debug.Log(str); // 出力結果 0 例2: long high_score = 1000000000; // 1000000000 => "1000000000"としてPlayerPrefsに設定 PlayerPrefs.SetString("HighScore", high_score.ToString());

取得方法

stringで設定したlong型の値を取得するにはlong型の「Parse」を使用します。 Parseは受け取った引数の値をlong型の値に変換してくれます。

Parseメソッド仕様

メソッド名: Parse 戻り値: 文字列をlong型の値に変換して返す 引数: string str 変換対象文字列 内容: 引数の文字列をlong型の値に変換する ※変換できなければエラー 例: // HighScoreのデータを取得 string high_score_str = PlayerPrefs.GetString("HighScore", "0"); // long型の値に変換 long high_score = long.Parse(high_score_str);