ハイスコアを表示させた後、それをリセットできるしくみを作ってみましょう。
前回記事の【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」から始まります。

関連記事:ベストタイムを表示する
 
	   
         
         
           
         
           
        