不断收到“标识符预期”和“;预期”错误消息

时间:2019-05-29 05:15:08

标签: c# unity3d

我正在尝试为我的游戏统一制作一个高分系统,并且不确定如何做到这一点,但是尽管如此,我还是尝试了这段代码,但我一直收到错误消息。

我已经尝试搜索这些错误,但是由于我对统一和编码尚不陌生,所以没有一种解决方案对我有意义。

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 :;预期的

3 个答案:

答案 0 :(得分:1)

您目前无法使用。如果您能学习C#的基本语法来避免此类问题,那就太好了。

Text是一个类,在这种情况下,scoreTextText类的实例。您不能只是这样做:

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()是一种方法。

答案 1 :(得分:0)

在“ 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();
}

让我知道是否有帮助

答案 2 :(得分:0)

尝试以下代码:

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