C# 无止境赛跑者的高分

C# 无止境赛跑者的高分,c#,unity3d,C#,Unity3d,有人知道为什么高分不起作用吗? 在游戏中,分数系统起作用,但高分不起作用。我试过很多方法让它工作,但没有 using UnityEngine; using UnityEngine.UI; using System; public class score : MonoBehaviour { public Transform jugador; public Text Score; public Text highscore; public Text scoreTe

有人知道为什么高分不起作用吗? 在游戏中,分数系统起作用,但高分不起作用。我试过很多方法让它工作,但没有

using UnityEngine;
using UnityEngine.UI;
using System;

public class score : MonoBehaviour {

    public Transform jugador;
    public Text Score;
    public Text highscore;
    public Text scoreText;
    private int currentscore = 0;
    private float floa;


    void Start() {

        highscore.text = PlayerPrefs.GetInt("HighScore", 0).ToString();
    }
    private void SetHighScore() {

        if (currentscore > PlayerPrefs.GetInt("HighScore", 0)) {
            PlayerPrefs.SetInt("HighScore", currentscore);
        }
    }
    private void Update () {

        floa = jugador.position.z;
        currentscore = (int)floa;
        scoreText.text = currentscore.ToString();
        highscore.text = PlayerPrefs.GetString ("HighScore").ToString();
    }


}

highscore正在工作,但当您在
highscore.text
上使用它时,您正在调用
playerRefs.GetString
但highscore实际上是一个整数! 只需以这种方式更改最后一行:

highscore.text = PlayerPrefs.GetInt("HighScore",0).ToString();

应该可以:D

highscore.text=PlayerPrefs.GetString(“highscore”).ToString()

上面的线是错误的,应该是


highscore.text=PlayerPrefs.GetInt(“highscore”,0).ToString()


因为当你保存分数时,PlayerPrefs是Int类型而不是字符串。

你从未调用过
SetHighScore
?当你死后,确保调用
SetHighScore()
。你不应该在
更新
中反复使用
GetInt
。。。只要在应用程序启动时获取一次就足够了,以后只有在高分确实发生变化时才再次更新。这与