如何在Unity中修复“类型或命名空间名称找不到”的错误?

3

我将要在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() {

    }
}
5个回答

2

这是一个命名空间错误,如果您使用了冲突变量,就会出现此错误。

使用 My.Players.namespace;


根据目前的写法,你的回答不够清晰。请编辑以添加更多细节,帮助其他人理解这如何回答所提出的问题。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - Community

0
在你的 Bout.cs 文件中,你试图创建类型为 ES 的变量 'et',但是 ES 类型不存在,你可能想要创建一个 LAMP?
public class Bout: MonoBehaviour {
public LAMP et;

// Use this for initialization
void Start() {

创建一个名为ES的可编程对象文件(文件名=“new ES”)并不意味着它的类型是ES,它取决于类的类型,例如LAMP。

0

我在尝试在运行时向游戏对象添加脚本组件时遇到了相同的错误。通过按照以下格式解决了这个问题:

GameObject.AddComponent(typeof(namespace.className));

0

刚刚遇到了这个错误,这是关于它的最热门的SO帖子,所以我会在这里发布我的解决方法:

我们引入了单元测试,需要为每个相关脚本的“组”使用.asmdef。在我们这个特定的实例中,原始开发人员为包含在被Git忽略的AutoGenerated文件夹(ROS消息)中的脚本拥有了.asmdef文件。

他推送了代码,Git忽略了AutoGenerated文件的.asmdef文件,然后因为我们正在使用.asmdef文件,而那个文件夹没有包含在我的盒子上,我的Unity就“找不到”那些文件了。

这也可能是你的问题,但99次中有98次是因为你拼错了类名 - 大小写很重要!在OP的情况下,实际类是LAMP,尽管在AssetMenu中称为ES。 OP应该使用public LAMP et;而不是public ES et;,然后它就可以工作了。


-2

'xxxx' 的类型或命名空间名称找不到的意思是因为你试图使用一个不存在的类,或者你没有使用包含该类的命名空间。

你遇到的问题是你试图使用一个不存在的东西。

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

如果你创建了 ES 类,你会发现错误消失了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接