Unity事例ノート

UNITY

ハイスコアをつくる

シーンを再ロードしても、変数がずっと保持されるように、スクリプトを作成しましょう。

今回は、ハイスコアがずっと表示される仕組みをつくります。

Sphereをクリックするたびに点数が入り、最高点になれば、ハイスコアが更新。

もう一度ゲームプレイしても、ハイスコアはリセットされずに、新記録がずっと保持されます。

関連記事:
ハイスコアをリセットする
ベストタイムを表示する
Prefabに触れると得点が入る
タイマーによる成績で評価ランク
TextMeshProを使用したタイムアップのしくみ
点数によるABC評価ランク

PlayerPrefsを使ってセーブする

Sphereをいくつか複製して、まばらに配置します。

空のオブジェクトを作成します。

ScoreCount.csを作成し、GameObjectに追加します。

ScoreCount.csを記述します。

ゲームプレイして、Sphereを3個クリックしてみましょう。

いったん、プレイを終了します。

もう一度プレイしてみましょう。

ハイスコアとして、コンソールに3が表示されています。

Sphereを3個以上クリックすれば、ハイスコアに新記録が更新されます。

PlayerPrefsによって、セーブとロードの機能を実装できます。

PlayerPrefs.GetInt(第一引数, 第二引数)

第一引数にはキーを登録します。

ここではSCOREという登録キーでロードしますが、第二引数に何も保存されていないときは、0を返すようにします。

そして、ScoreがhighScoreを上回れば、Scoreの数値をセットします。

PlayerPrefs.SetInt(第一引数, 第二引数)

SCOREキーに、highScoreの値を保存。

最後に PlayerPrefs.Save()を書き、変更された値をディスクへと保存します。

関連記事:
ハイスコアをリセットする
ベストタイムを表示する
Prefabに触れると得点が入る
タイマーによる成績で評価ランク
TextMeshProを使用したタイムアップのしくみ
点数によるABC評価ランク

SCHOOL教室案内