我试图根据玩家"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 );
}