Unityで何かを作ってみる その14

Unity

スコアの保存

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

Unity
スポンサーリンク
northprintをフォローする
おおよそ北の方向から

コメント