スコアの保存
今回はスコアを保存して表示します。
保存には、UnityのPlayerPrefsを使います。
まず、PlayerPrefsにスコアを保存するスクリプトを書きます。
GameManager.cs
-略- //野菜を生成する public void CreateVegetable(){ -略- //スコア加算 if (_vegetableSpriteList.Count > 1){ _score++; _scoreText.text = _score.ToString(); //スコアをPlayerPrefsに保存 int saveScore = PlayerPrefs.GetInt("HIGH_SCORE", 0); if (saveScore < _score){ PlayerPrefs.SetInt("HIGH_SCORE", _score); } } } -略-
これでPlayerPrefsに”HIGH_SCORE”というキーで値が生成されました。
キーは直打ちなので、後ほど定数などにして共通化した方が良いですね。。。
スコアの表示
ゲームスタートシーンにスコアの表示を追加します。
シーンビューは以下のようになります。
ヒエラルキーはこんな感じです。HighScoreLabelとHighScoreを追加しています。
GameStartManagerでスコアを表示させます。
GameStartManager.cs
using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; namespace VegetableTower.Managers { public class GameStartManager : MonoBehaviour { [SerializeField] Text _scoreText; //スタートボタンをクリック public void StartClick() { SceneManager.LoadScene("GameMain"); } void Awake() { int score = PlayerPrefs.GetInt("HIGH_SCORE", 0); _scoreText.text = score.ToString(); } } }
インスペクタで表示させたいTextコンポーネントのセットを忘れずに
コメント