【问题标题】:How to fix 'The type or namespace name could not be found ' error in unity?如何统一修复“找不到类型或命名空间名称”错误?
【发布时间】:2019-05-23 17:31:53
【问题描述】:

我在 Unity 5 中设置了一个新的可编写脚本的对象,当我尝试设置对它的引用时出现错误:'找不到类型或命名空间名称'ES'(您是否缺少使用指令还是程序集引用?'

可编写脚本的对象脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(fileName = "new ES", menuName = "ES")]

public class LAMP: ScriptableObject {
    public int groupNum;

    void Start() {

        groupNum = 1;

    }

}

monobehavior 脚本中的引用:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Bout: MonoBehaviour {

    public ES et;

    // Use this for initialization
    void Start() {

    }

    // Update is called once per frame
    void Update() {

    }
}

【问题讨论】:

    标签: c#-6.0


    【解决方案1】:

    The type or namespace name 'xxxx' could not be found 的含义是因为您正在尝试使用一个不存在的类,或者您没有使用该类所在的命名空间。

    您遇到的问题是您正在尝试使用不存在的东西。

    您正在尝试创建一个名为 ES 的可脚本化对象,但创建一个名为 ES 的类完全不同。

    如果你创建了 ES 类,你会看到错误消失了。

    【讨论】:

      【解决方案2】:

      这是一个命名空间错误,如果你使用一个冲突变量你会遇到这个错误。

      使用 My.Players.namespace;

      【讨论】:

      • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
      【解决方案3】:

      刚刚遇到这个错误,这是关于它的顶级 SO 帖子,所以我将在此处发布我的修复:

      我们引入了单元测试,它需要 .asmdef 用于每个“组”相关脚本。在我们这个特殊的例子中,原始开发人员拥有 .asmdef 脚本文件,该文件包含在被 Git 忽略的自动生成文件夹(ROS 消息)中。

      他推送了代码,Git 忽略了 AutoGenerated 文件的 .asmdef 文件,然后因为我们使用 .asmdef 文件并且该文件夹未包含在我的盒子中,我的 Unity “找不到”文件。

      可能也是你的问题,但 100 次中有 99 次出现此错误是因为你拼错了类名 - 大写很重要!在 OP 的情况下,具体的实际类是 LAMP,即使它在 AssetMenu 中被称为 ES。而不是public ES et; OP 应该有public LAMP et; 然后它会工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-10
        • 2019-07-14
        相关资源
        最近更新 更多