開発メモ 「スコア更新(PlayerPrefs)」
今回は、スコア更新(PlayerPrefs)をメモ。
ゲームで、メニュー画面にハイスコアを表示するやり方が、
よく分かっていなかったけれど、なんとかできた。
とりあえず、結果画面がどんな感じか。
[Before]
[After]
こんな感じ。
とにかく、以下の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には他にも、
SetFloat、GetFloat、SetString、GetString、DeleteKey、DeleteAll、Save
があるから、徐々に開発しながら覚えていこうと思う。
▼追記