シヴァのブログ

UnityやUE4や趣味とかいろいろ...

開発メモ 「スコア更新(PlayerPrefs)」

今回は、スコア更新(PlayerPrefs)をメモ。

ゲームで、メニュー画面にハイスコアを表示するやり方が、

よく分かっていなかったけれど、なんとかできた。

 

とりあえず、結果画面がどんな感じか。

 

[Before]

f:id:shivaT:20130613101652p:plain

 

[After]

f:id:shivaT:20130613101725p:plain

 

こんな感じ。

 

とにかく、以下の3つを最低限、覚える。

 ・PlayerPrefs.HasKey : boolean型

 ・PlayerPrefs.SetInt  : void型 

 ・PlayerPrefs.GetInt  : int型

 

簡単に、例を用いて説明すると、

 ・if(!PlayerPrefs.HasKey("highScore")){ }

  「記憶している"highScore"という変数の中には、何か入っていますか?」って、

   聞きたい時に使用する。

 

 ・PlayerPrefs.SetInt("highScore", 0);

  「記憶している"highScore"という変数に0を代入する」っていう意味。

 

 ・Score = PlayerPrefs.GetInt("highScore");

  「記憶している"highScore"という変数の値をScoreに代入する」っていう意味。

 

じゃあ、具体的にどんな風に使用するのか。

タイトル画面で使用するJavaScriptの中は、

こんな感じ。

***************************************************************************
var labelstyle3 : GUIStyle;//HighScore

private var highScore : int = 0;←ハイスコアに入れる変数名を定義

function Awake(){
    if(!PlayerPrefs.HasKey("highScore")){←highScoreに何か入っているか調べる
        PlayerPrefs.SetInt("highScore", 0); ←入ってなかったら、highScoreに0を代入
    }else{
        highScore = PlayerPrefs.GetInt("highScore");入ってたら、highScoreにその値を代入
    }
}

function OnGUI(){
    var sw : float = Screen.width;
    var sh : float = Screen.height;
   
    var highscore : Rect = Rect(sw / 2, sh / 10, sw / 2, sh / 2);
    GUI.Label(highscore, "HighScore : " + highScore, labelstyle3);←highScoreを表示
}

***************************************************************************

 

一方、ゲームのmain画面で使用するJavaScriptの中は、こんな感じ。

***************************************************************************

var ScoreStyle : GUIStyle;

var Score : float = 0.0;←スコアに入れる変数名を定義

function Die(){←ゲームオーバー時の処理
    if(Score > PlayerPrefs.GetInt("highScore")){←今までのhighScoreと今回のScoreを比較
        PlayerPrefs.SetInt("highScore", Score);←ScoreをhighScoreに代入
    }
    Application.LoadLevel("Title");
}

function OnGUI(){
    var sw = Screen.width;
    var sh = Screen.height;
    GUI.Label(Rect(0,10,sw - 10, sh),"SCORE : " + Score,ScoreStyle);←Scoreを表示
}

***************************************************************************

 

以上で、メモ終了。

 

うん。

PlayerPrefsには他にも、

SetFloatGetFloatSetStringGetStringDeleteKeyDeleteAllSave

があるから、徐々に開発しながら覚えていこうと思う。

 

 

▼追記

shivat.hatenablog.com