如何保留用户的分数并在下一个场景中加载

本文关键字:下一个 加载 何保留 保留 用户 | 更新日期: 2023-09-27 18:11:09

问题是:我需要将用户获得的分数传递到下一个场景,而不是复杂的分数,这样它就可以说"你得分很好"+分数。游戏结构由三个场景组成,开始、游戏、结束。我需要从戏剧场景到结尾场景的配乐。

问题:我该怎么做?我已经看过单身人士了。DontDestroyOnLoad函数,但我不知道如何使用它们或附加它们,以及保存什么游戏对象。

public class Score : MonoBehaviour
{
    public int score = 0;                   
    void Awake ()
    {
        InvokeRepeating("increaseScore", 1, 1);
    }
    void Update ()
    {
        score++;
        // Set the score text.
        guiText.text = "Score: " + score;
    }
}

如果有帮助的话,这是我得分的代码。

如何保留用户的分数并在下一个场景中加载

你可以使用PlayerPrefs。settint和PlayerPrefs。GetInt:

// Save score to prefs before scene is destroyed
PlayerPrefs.SetInt("score", score);

然后:

// Load score when new scene is loaded
score = PlayerPrefs.GetInt("score");

或者,在你的Score类的Awake函数中,使用DontDestroyOnLoad,这样它的GameObject就不会被破坏:

DontDestroyOnLoad(gameObject);

为分数创建一个静态类和一个静态变量。这是最简单的解决方案,你不需要使用playerPrefs。

public static ScoreManager
{
    private static int score = 0;
    public static void setScore(int s)
    {
        score = s;
    }
    public static int getScore()
    {
        return score;
    }
}

静态类在整个程序的执行过程中都是活跃的,无论你去到哪个场景。