如何保留用户的分数并在下一个场景中加载
本文关键字:下一个 加载 何保留 保留 用户 | 更新日期: 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;
}
}
静态类在整个程序的执行过程中都是活跃的,无论你去到哪个场景。