Я пытаюсь создать систему высоких очков для своей игры в единстве и не совсем уверен, как это сделать, но, тем не менее, я попробовал этот код и продолжаю получать сообщения об ошибках.
Я пытался найти эти ошибки, но, поскольку я совершенно новичок в единстве и кодировании в целом, ни одно из решений не имеет для меня смысла.
public Transform player;
public Text scoreText;
public Text highScore;
// Update is called once per frame
void Update()
{
scoreText.text = player.position.z.ToString("0");
scoreText = scoreText.int.Parse;
if (scoreText > PlayerPrefs.GetInt("High Score", 0)) ;
{
PlayerPrefs.SetInt("High Score", scoreText);
highScore.text = scoreText.ToString;
}
Это сообщения об ошибках, которые появляются
Assets\Score.cs(15,31): ошибка CS1001: ожидается идентификатор
Assets\Score.cs(15,31): ошибка CS1002: ; ожидал
извините, я не знаю, я снял stackify.com/convert-csharp-string-int
Удалите точку с запятой после условия If.
void Update()
{
scoreText.text = player.position.z.ToString("0");
// scoreText = scoreText.int.Parse;
if (scoreText > PlayerPrefs.GetInt("High Score", 0))
{
PlayerPrefs.SetInt("High Score", scoreText);
highScore.text = scoreText.ToString();
}
дайте мне знать, если это поможет
Зачем тебе эта линия? scoreText = scoreText.int.Parse;
Это дает мне эту ошибку, если у меня ее нет Assets\Score.cs(20,40): ошибка CS0428: невозможно преобразовать группу методов «ToString» в тип «string», не являющийся делегатом. Вы намеревались вызвать метод?
ToString — это метод, пока вы пытаетесь использовать его как свойство. highScore.text = scoreText.ToString();
То, что у вас есть сейчас, не сработает. Было бы неплохо, если бы вы могли изучить основы синтаксиса C#, чтобы, возможно, избежать подобных проблем.
Text
— это класс, а scoreText
в данном случае — экземпляр класса Text
. Вы не можете просто сделать это:
scoreText = scoreText.int.Parse;
Если, конечно, scoreText.int.Parse
(хотя и не работает) возвращает Text
.
Я думаю, что вы пытаетесь получить позицию игрока и преобразовать ее в int, чтобы вы могли сохранить значение, используя PlayerPrefs
.
Вы можете просто создать переменную int.
private int _score;
Затем используйте так:
_score=int.Parse(scoreText.text);
Вы можете сохраниться, используя PlayerPrefs
.
PlayerPrefs.SetInt("High Score", _score);
Надеюсь, это поможет.
В этой строке тоже ошибка:
highScore.text = scoreText.ToString;
Должно быть :
highScore.text = scoreText.ToString();
Потому что ToString()
— это метод.
Попробуйте этот код:
public Transform player;
public Text scoreText;
public Text highScore;
// Update is called once per frame
void Update()
{
scoreText.text = player.position.z.ToString("0");
int scoreTextNumber = int.Parse(scoreText.text);
if (scoreText > PlayerPrefs.GetInt("High Score", 0))
{
PlayerPrefs.SetInt("High Score", scoreTextNumber);
highScore.text = scoreTextNumber.ToString("0");
}
Как это работает
scoreText = scoreText.int.Parse;
?