ハイスコアを表示させた後、それをリセットできるしくみを作ってみましょう。
前回記事の【Unity C#】ハイスコアをつくるをベースに作成します。
PlayerPrefsでハイスコアの変数をデータ保存し、コンソールに表示します。
ボタンクリックで、これを0に戻すことができて、次回プレイのときには0から始まります。
関連記事:ベストタイムを表示する
新記録のデータを0に戻す
Sphereをいくつか複製して、まばらに配置します。
空のオブジェクトを作成します。
ScoreCount.csを作成し、GameObjectに追加します。
ScoreCount.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ScoreCount : MonoBehaviour { public int score; public int highScore; void Start() { score = 0; highScore = PlayerPrefs.GetInt("SCORE", 0); } void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Input.GetMouseButtonDown(0)) { if (Physics.Raycast(ray, out hit)) { Destroy(hit.collider.gameObject); score++; } } if(highScore < score ) { highScore = score; PlayerPrefs.SetInt("SCORE", highScore); PlayerPrefs.Save(); } Debug.Log(highScore); } public void ResetScore() { highScore = 0; PlayerPrefs.SetInt("SCORE", 0); PlayerPrefs.Save(); } } |
ボタンからリセットを実行
ResetScore()をボタンから実行できるようにしましょう。
ボタンを作成します。
ボタンの配置を行います。
ResetScore()を実行できるように、以下の手順で、ボタンの設定を行いましょう。
ゲームプレイしてみましょう。
ボールを3個クリックして、プレイを止めます。
新記録としてコンソールに「3」が表示されます。
再び、ゲームプレイすると、ハイスコアとして「3」がコンソールに表示されています。
ボタンをクリックすれば、ハイスコアが「0」に戻ります。
プレイを止めてから、再びゲームプレイしてみると、ハイスコアが「0」から始まります。
関連記事:ベストタイムを表示する