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

yqkkidmi  于 2022-11-16  发布在  其他
关注(0)|答案(5)|浏览(1935)

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

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;

    }

}

monobhavior脚本中引用:

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() {

    }
}
xe55xuns

xe55xuns1#

这是一个命名空间错误,如果您使用的是冲突变量,则会遇到此错误。
使用My.Players.命名空间;

0lvr5msh

0lvr5msh2#

刚刚有这个错误,这是关于它的顶部所以职位,所以我会在这里发布我的修复:
我们引入了单元测试,它需要.asmdef来测试每一组相关的脚本。在我们这个特殊的例子中,最初的开发者有一个包含在自动生成文件夹(ROS消息)中的脚本的.asmdef文件,它被Git设置为忽略。
他推送代码,Git忽略了自动生成文件的.asmdef文件,然后因为我们使用的是.asmdef文件,而那个文件夹并没有包含在我的盒子里,我的Unity“找不到”那里的文件。
这 * 可能 * 也是你的问题,但是你得到这个错误的100次中有99次是因为你拼错了类名--大小写很重要!在OP的例子中,实际的类是LAMP,尽管它在AssetMenu中被称为ES。而不是public ES et;,OP应该有public LAMP et;,然后它就可以工作了。

xxe27gdn

xxe27gdn3#

在您的文件Bout.cs中,您试图创建ES类型的变量“et”,但ES类型不存在,您可能希望创建LAMP?

public class Bout: MonoBehaviour {
public LAMP et;

// Use this for initialization
void Start() {

创建一个名为ES(fileName =“new ES”)的可脚本化对象文件并不意味着它的类型是ES,它采用类的类型,即LAMP

cetgtptt

cetgtptt4#

我在运行时尝试将脚本组件添加到游戏对象时遇到了同样的错误。通过以下格式修复了它:

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

wwtsj6pe5#

The type or namespace name 'xxxx' could not be found的含义是因为您尝试使用不存在的类,或者您没有使用该类所在的命名空间。
你的问题是你试图使用不存在的东西。
您正在尝试创建一个名为ES的可脚本化对象,但创建一个名为ES的类则完全不同。
如果您创建了ES类,您将看到错误消失了。

相关问题