无法从 "string" 转换为 "int" 。Unity,尝试使用 player.position.z 添加高分



我试图根据玩家"Z"位置添加高分。

我不明白出了什么问题。

void Start()
{
highScore.text = PlayerPrefs.GetInt("HighScore", 0).ToString();
}
void UpdateScore()
{
string number = player.position.z.ToString();
highScore.text = score.text.ToString();
PlayerPrefs.SetInt("HighScore", number); //here is where i get the error
}

为什么将位置(浮点数(转换为字符串,然后尝试将字符串转换为整数?

只需圆形/地板/ceil玩家的z位置:

int number = Mathf.RoundToInt( player.position.z ) ;
highScore.text = score.text.ToString();
PlayerPrefs.SetInt("HighScore", number);

转换为字符串并解析对资源不是很友好,尤其是如果您每一帧都这样做。

我知道这很老了,但实际上:

为什么不将其保留为float

private float currentScore;
void Start()
{
currentScore = PlayerPrefs.GetFloat("HighScore", 0);
highScore.text = currentScore.ToString("F0");
}
void UpdateScore()
{
currentScore = player.position.z;
highScore.text = currentScore.ToString("F0");
PlayerPrefs.SetFloat("HighScore", currentScore );
}

最新更新