首页 > 解决方案 > Unity调试报错:只有assignment、call、increment、decrement、await、new object表达式可以作为语句使用

问题描述

我正在尝试创建一个 2D 击球游戏。我想访问位于另一个脚本中的 int 变量 (public int ScoreTask = 10;)。但是,当我调试代码时,出现以下错误:

错误 CS0201:只有赋值、调用、递增、递减、等待和新对象表达式可以用作语句

错误 CS0103:当前上下文中不存在名称“ScoreTask”

这是我的脚本:

public class Countdown : MonoBehaviour 
{   
    private Ball scoreScript;
    public GameObject ScoreBoard;

    void Start () 
    {
        scoreScript = ScoreBoard.GetComponent<Ball> ();
    }
    void Update () 
    {
        GetScore ();
    }
    void GetScore() 
    {
        scoreScript.ScoreTask;

        if (timeLeft == 0 && ScoreTask != 0)
            Application.LoadLevel("GameOver");
    }
}

标签: c#unity3dgetter-setter

解决方案


只需这样做:

void GetScore() 
{
    if (timeLeft == 0 && scoreScript.ScoreTask != 0){
        Application.LoadLevel("GameOver");
    }
}

问题是你在问ScoreTask你的if情况是什么,但它不知道ScoreTask没有它来自哪里的上下文是什么,即scoreScript.ScoreTask


推荐阅读