Продолжайте получать сообщения об ожидаемых идентификаторах и ожидаемых ошибках; - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь создать систему рекордов для своей игры в единстве и не совсем уверен, как это сделать, но тем не менее я попробовал этот код и продолжаю получать сообщения об ошибках.

Я пытался найти эти ошибки, но, поскольку я довольно новичок в единстве и вообще не кодирую, ни одно из решений не имеет для меня смысла.

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;
    }

Это сообщения об ошибках.которые показывают

Активы \ Score.cs (15,31): ошибка CS1001: ожидаемый идентификатор

Активы \ Score.cs (15,31): ошибка CS1002:;Ожидается,

Ответы [ 3 ]

1 голос
/ 29 мая 2019

То, что у вас сейчас не получится. Было бы неплохо, если бы вы могли изучить базовый синтаксис 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() - это метод.

0 голосов
/ 29 мая 2019

Попробуйте этот код:

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");
    }
0 голосов
/ 29 мая 2019

Снять точку с запятой после условия 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();
}

дай мне знать, если это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...