ハイスコアを保存することで、次回以降にゲームを起動した際にもハイスコアを取得できるようにします。
では、どの場面でハイスコアを保存していけばよいでしょうか。
考えられるのは
1.ゲームクリア(ステージクリア)時
2.ゲームオーバー時
です。この状態になったときに、ハイスコアの数字が更新されていれば保存をするようにしていきましょう。
どちらの処理もGameMaster.csの各メソッド内で処理されていますので、そちらを変更します。
GameMaster.csを修正していきます。
GameMaster.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class GameMaster : MonoBehaviour {
public int boxNum;
public float nowTime;
public Text resultMessage;
[SerializeField] private Score score; <= これを追加する
(中略)
void StageClear(string resultMessage)
{
score.Save(); <= これを追加する // ScoreのSaveメソッドを呼び出す
DataSender.resultMessage = resultMessage; // 受け取った引数を変数に格納する
resultMessageText.text = DataSender.resultMessage; // 画面にクリア状態を表示する
FindObjectOfType<LevelManager>().LevelUp(); // LevelManagerのLevelUpメソッドを呼び出す
}
public void GameOver(string resultMessage)
{
score.Save(); <= これを追加する // ScoreのSaveメソッドを呼び出す
DataSender.resultMessage = resultMessage;
SceneManager.LoadScene("Result");
}
}