(Unity6)シーン間でスコアデータを引き継ぐ方法(static修飾子の活用)

<ゲームステージ間のデータの引き継ぎ>

(サンプルコード)

using UnityEngine;
using TMPro;
using UnityEngine.SceneManagement;

public class ScoreManager : MonoBehaviour
{
    public TextMeshProUGUI scoreLabel;

    // (ポイント)static修飾子
    public static int score;
    public static int sceneNum;

    void Start()
    {
        scoreLabel.text = "SCORE:" + score;
    }

    void Update()
    {
        // スペースキーを押すとスコアを100点ずつ加算
        if (Input.GetKeyDown(KeyCode.Space))
        {
            score += 100;
            scoreLabel.text = "SCORE:" + score;
        }

        // Zキーを押すと次のステージに遷移
        if (Input.GetKeyDown(KeyCode.Z))
        {
            sceneNum += 1;
            SceneManager.LoadScene(sceneNum);
        }
    }
}

(実行確認)


<最終ステージのスコアをリザルトシーンに引き継ぐ>

(サンプルコード)

using UnityEngine;
using TMPro;

public class ResultManager : MonoBehaviour
{
    public TextMeshProUGUI finalScoreLabel;

    void Start()
    {
        // 「インスタンス不要」で、「ScoreManager」クラスに「直接アクセス」できる(ポイント)
        finalScoreLabel.text = "FINAL SCORE: " + ScoreManager.score;
    }
}

(実行確認)