Считайте, что player.position.z
- это число с плавающей точкой. И если вы TryParse строка, представляющая число с плавающей точкой, трипарсе не удается.
В вашем конкретном случае вам вообще не нужен Parse, и вы можете использовать player.position.z
напрямую (сначала приведите его к int). Это также намного лучше для производительности, так как вы делаете это в обновлении.
Также метод 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();
}
}