c# - 高分更新在 2dunity 游戏中不起作用

标签 c# unity3d

我是 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/

相关文章:

c# - 创建 HandleBars 助手服务器端的语法是什么?

c# - C#公共(public)评论中的特殊字符

c# - NativeMethods 类是在 .NET 中专门处理的吗?

ios - 是否可以将Unity与UIKit混合使用?

unity3d - 如何为 Google Play 游戏签署 Unity 应用程序包

c# - 我如何让敌人在 unity c# 中从屏幕的顶部移动到底部?

unity3d - 使用碰撞在生成后销毁预制对象

c# - c# WPF 中的文字字符太多

android - 无法访问 Facebook session - UnknownError : Invalid application

c# - 单个 ASP.net 请求的多个核心