繁体   English   中英

如何保持用户得分并在下一个场景中加载?

[英]How to keep the users score and load it in the next scene?

问题:我需要将用户传递到下一个场景的分数,没有什么复杂的,只是可以说出“您的分数做得很好” +分数。 游戏结构包括三个场景,开始,播放,结束。 我需要分数可以从播放场景到结束场景。

问题:我该怎么做? 我查看了singletons和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.SetIntPlayerPrefs.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;
    }
}

静态类在整个程序的执行过程中始终有效,无论您要进入哪个场景。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM