我是 2D Unity 游戏开发的初学者,这是我的第一款游戏。在这个游戏中,我有两个场景——一个是玩游戏场景,另一个是游戏结束场景。当我尝试在游戏结束场景中显示高分时,它对我不起作用。这是我试过的代码:
public class highscore : MonoBehaviour {
public Text hscore;
private void Start() {
hscore.text = PlayerPrefs.GetInt("highscore", 0).ToString();
}
public void Update() {
if (GetComponent<Score>().score > PlayerPrefs.GetInt("highscore")) {
PlayerPrefs.SetInt("highscore", GetComponent<Score>().score);
hscore.text = GetComponent<Score>().score.ToString();
}
}
}
它卡住了整个场景的游戏,没有其他任何东西可以解决这个问题。有谁知道问题出在哪里?任何帮助都会很有用。提前致谢。
最佳答案
我建议您完全重新编写代码。例如,为什么你需要额外的屏幕来显示高分。场景之间的切换是一种代价高昂的操作。即使您确实需要两个屏幕,您也应该将“显示高分”逻辑放在更新方法之外。现在解决方案:
处理此问题的最简单方法是使用 PlayerPrefs
像这样更新高分 PlayerPrefs.SetInt("HighScore", yourScore);
您可以获得如下值:
int highScore = PlayerPrefs.GetInt("HighScore", 0);
第二个参数是可选的,如果之前没有设置 HighScore
则返回。另一件事是您可以使用弹出窗口来显示高分。这样您就不必在场景之间切换。
关于c# - 高分更新在 2dunity 游戏中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52330337/