我正在尝试建立一个高分系统,但是即使得分系统有效,高分也不会改变。我如何也更新高分文字?
我一直在弄乱代码以使其正常工作,但一直无济于事。
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();
}
}
高分旨在随着分数的更新而更新,但它根本不会改变。
答案 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();
}
}