我的统一计划的高分系统无法正常工作

时间:2019-06-03 09:49:54

标签: c# unity3d

我正在尝试建立一个高分系统,但是即使得分系统有效,高分也不会改变。我如何也更新高分文字?

我一直在弄乱代码以使其正常工作,但一直无济于事。

public Transform player;
public Text scoreText;
public Text highScore;


void start() => highScore.text = PlayerPrefs.GetInt("High Score", 0).ToString();

// Update is called once per frame
public void Update()
{
    scoreText.text = player.position.z.ToString("0");
    int scoreTextNumber = int.Parse(scoreText.text);

    if (scoreTextNumber > PlayerPrefs.GetInt("High Score", 0))
    {
        PlayerPrefs.SetInt("High Score", scoreTextNumber);
        highScore.text = scoreTextNumber.ToString();
    }

}

高分旨在随着分数的更新而更新,但它根本不会改变。

1 个答案:

答案 0 :(得分:0)

请考虑player.position.z是浮点数。而且,如果您TryParse表示浮点数的字符串,则tryparse将失败。

在您的特定情况下,您根本不需要解析,可以直接使用player.position.z(首先将其广播到int)。由于您在Update中执行此操作,因此它的性能也要好得多。

另外,start方法应大写为Start()

public Transform player;
public Text scoreText;
public Text highScore;


void Start() => highScore.text = PlayerPrefs.GetInt("High Score", 0).ToString();

// Update is called once per frame
public void Update()
{
    int score = (int) player.position.z;
    scoreText.text = score.ToString("0");

    if (score > PlayerPrefs.GetInt("High Score", 0))
    {
        PlayerPrefs.SetInt("High Score", score);
        highScore.text = score.ToString();
    }    
}