【Unity】値を保持したいとき

なんてタイトルにしていいのかわからなかったけど、 ベストスコアとか、ゲームを終了した後にも値を保持したい時。 ゲーム作る上では不可欠なのでメモ。

PlayerPrefsとやらを使う。

値のセットは
PlayerPrefs.SetInt("ここ変数名", 入れたい値(int));
値の取り出しは
PlayerPrefs.GetInt("ここ変数名");
値が入ってるかは
PlayerPrefs.HasKey("ここ変数名");
でbool値が返ってくる。

Setするまで値は持てないので、初めて起動するときは例えば、
"Init" とかのフラグになる値があるか見て、持ってなかったら値をまずセットさせる。
そうすれば次回起動時からはGetすることができる。

多分こんなふうに使う。

    void Awake () {
        if(!PlayerPrefs.HasKey("Init")){
            SetKey();
        }
    }
    void SetKey(){
        PlayerPrefs.SetInt("Init", 1); 
        PlayerPrefs.SetInt("BestScore", 0); 
    }

でもここによると ユーザーからplayerPrefsは見れてしまうらしい。

ファイルに書き込んだほうがよさそうだけど、 めんどくさそうなので挑戦していない。