【问题标题】:Showing error in CS1002 and CS0116 in C# script in Unity Engine在 Unity 引擎的 C# 脚本中显示 CS1002 和 CS0116 错误
【发布时间】:2020-07-23 02:24:42
【问题描述】:

enter image description here我已经按照 YouTube 上关于如何制作 Brackeys 游戏的教程进行了操作,但我被困在视频号上。 7 我不知道如何解决这个问题。请帮忙。

link to tutorial

代码在 7:36

using UnityEngine;
using UnityEngine UI;

public class Score : MonoBehaviour
{
       public Transform player;
       public Text scoreText;

       void Update()
       {
            scoreText.text = player.position.z.ToString("0");
        }
}

【问题讨论】:

  • 您发布的代码不会产生这些错误(CS1002 和 CS0116)。请发布所有重现问题的代码。
  • @Dai 不完全确定错误是如何为您弹出的。请看下面我的回答。我不得不假设您复制并粘贴了它,但在没有意识到的情况下更正了海报代码中的错误。让我知道您复制和粘贴时是否确实没有错误!
  • @whathm 我将它复制并粘贴到 Linqpad 中,没有 using namespace 语句。我完全忽略了那里缺少的点 - 似乎还有另外两个人!
  • @Dai 哈哈没什么大不了的!我原来也是。我的大部分回复都是在没有第一段的情况下写的。然后我做了一个仔细检查,看到缺少的时期。不过,这确实是一次很好的学习经历,哈哈!

标签: c# unity3d


【解决方案1】:

首先,检查代码的第二行。 using UnityEngine UI; 似乎缺少UnityEngineUI 之间的句点。我相信这是您问题的核心,并导致其他两个错误弹出。该行应该是using UnityEngine.UI;

无论如何,这里是关于如何找出此类问题的路径的解释

有关您的两个错误代码的信息,请参阅以下两个链接。请记住,这些内容始终可以通过快速的 Google 搜索获得:

  • CS1002:此错误表示您缺少分号 (;)。在 C# 中,几乎所有行的末尾都需要分号。查看您的代码,缺少的分号不在此特定代码块中,因此它必须在您的代码中的其他位置。要找到它,最简单的方法是转到 Unity 控制台窗口并双击错误行或在消息中查找脚本位置和行号。这些中的任何一个都应该让您更接近丢失的分号所在的位置。
  • CS0116:此错误表示命名空间包含类、结构或其他命名空间以外的内容。这意味着您的代码结构存在缺陷。再次转到错误,看看你是否能找到包含它的脚本。然后检查结构并确保没有任何区域像方法这样的东西落在你的类之外(这很常见并且会表示您将方法直接放入命名空间,这将导致 CS0116。

希望这会有所帮助!

编辑:再考虑一下这里的逻辑,这是 100% 的第二行。想象一下编译器将如何解释这一点。当你错过那个时期时,它真正看到的是“两行”

using UnityEngine
UI;

所以它看着这个并说了两件事:

  1. using UnityEngine 后面缺少分号
  2. 你要在你的类之前的命名空间区域做一些不允许的事情

当你想想它为什么告诉你你有这两个错误时会很有趣。

【讨论】:

  • @TanmyModi 没问题!很高兴它有帮助。如果它对您有用,请将其标记为答案,以便其他人能够看到解释。​​
【解决方案2】:

错误在代码的第二行:

using UnityEngine;
using UnityEngine UI;

应改为:

using UnityEngine;
using UnityEngine.UI;

您需要一段时间才能访问 UnityEngine 命名空间中的另一个命名空间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多