スコアの保存
今回はスコアを保存して表示します。
保存には、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コンポーネントのセットを忘れずに


コメント