【问题标题】:How do I fix a CS0103 error for a button? [closed]如何修复按钮的 CS0103 错误? [关闭]
【发布时间】:2021-07-14 21:00:27
【问题描述】:

我已经研究这个有一段时间了。这是我的第一个真正的项目,所以我对自己在做什么不太了解。这是我第一次使用这个网站,所以如果我能让任何东西更容易理解,请告诉我!

除非您有工作人员,否则我正在尝试将此按钮设为灰色。这本身应该可以工作,问题是我收到 CS0103 错误:Assets\GameManager.cs(57,2): error CS0103: The name 'Button2' does not exist in the current context

我不知道如何识别代码中的按钮,我认为这是问题所在。

这是我的代码:

void Update()
{
    bool StaffHave = false;

    Button2.interactable = StaffHave;
}

我是不是把按钮命名错了?我是否需要更具体地说明它在哪个场景或什么的?如果是这样,怎么做?我很困惑,不完全确定出了什么问题,所以我无法谷歌答案,因为我不知道要谷歌什么。任何帮助将不胜感激!

【问题讨论】:

  • 所以首先,很高兴看到实际的错误消息。其次,这看起来不像 Windows C#。这是否与 Unity 引擎有关?第三,您可以通过 Button2.interactable = StaffHave 简化它并跳过 ifs。但这不是你的错误的原因......
  • 等待windows和unity c#有什么不同?我正在使用统一
  • 对于 Windows,我指的是 Visual Studio 和 .NET。 Unity 有自己的框架,只使用 C# 作为语言。只是不清楚您使用什么技术,因为它不同,而且您的代码在 WinForms 或 WPF 项目中没有意义。
  • 啊,好的,谢谢。我使用 Unity 并在记事本中进行编码。我会使用visual studio,但我的电脑有问题,C盘总是满的,尽管里面什么都没有,所以我不能下载它

标签: c# button compiler-errors


【解决方案1】:

也许您忘记扩展类和/或在命名空间 UnityEngine.UI 上添加 using 指令。

这个例子应该可以工作。

using UnityEngine;
using UnityEngine.UI;

public class Foo : MonoBehaviour
{
    //
    // ...
    //
    void Update()
    {
        bool StaffHave = false;

        if (StaffHave == false)
        {
            Button2.interactable = false;
        }

        if (StaffHave == true)
        {
            Button2.interactable = true;
        }
    }
}

【讨论】:

  • 消除了错误,但现在它说“按钮 2”在当前上下文中不存在。我的按钮被称为 Option2,但在我的代码中的其他地方它被称为 Button2,并且该部分没有抛出错误。
  • 那么请相应地更新您的问题,因为您的问题中所述的错误已经消失。不要在一篇文章中提出多个问题。另见How to Ask
  • 谢谢,我现在意识到这可能是不合适的做法。我应该为这个错误创建一个新问题,还是只保留它的更新格式?我已经对其进行了更简洁的编辑,所以现在我只是在等待它重新打开。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-24
  • 1970-01-01
  • 2014-12-11
  • 2019-04-07
  • 2020-05-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多