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評価ランク

この記事の監修・専門指導

枚方市のプログラミング専門スクール
フタバゼミ 枚方くずは校

この記事で解説したUnityやC#の技術も、当校では直接個別指導しています。「むずかしいことをおもしろく」をモットーに、初心者から本格開発までサポート。樟葉駅から徒歩1分、まずはお気軽に体験会へお越しください。

SCHOOL教室案内