我正在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() {
}
}
5条答案
按热度按时间xe55xuns1#
这是一个命名空间错误,如果您使用的是冲突变量,则会遇到此错误。
使用My.Players.命名空间;
0lvr5msh2#
刚刚有这个错误,这是关于它的顶部所以职位,所以我会在这里发布我的修复:
我们引入了单元测试,它需要
.asmdef
来测试每一组相关的脚本。在我们这个特殊的例子中,最初的开发者有一个包含在自动生成文件夹(ROS消息)中的脚本的.asmdef
文件,它被Git设置为忽略。他推送代码,Git忽略了自动生成文件的
.asmdef
文件,然后因为我们使用的是.asmdef
文件,而那个文件夹并没有包含在我的盒子里,我的Unity“找不到”那里的文件。这 * 可能 * 也是你的问题,但是你得到这个错误的100次中有99次是因为你拼错了类名--大小写很重要!在OP的例子中,实际的类是
LAMP
,尽管它在AssetMenu中被称为ES
。而不是public ES et;
,OP应该有public LAMP et;
,然后它就可以工作了。xxe27gdn3#
在您的文件Bout.cs中,您试图创建ES类型的变量“et”,但ES类型不存在,您可能希望创建LAMP?
创建一个名为ES(fileName =“new ES”)的可脚本化对象文件并不意味着它的类型是ES,它采用类的类型,即LAMP
cetgtptt4#
我在运行时尝试将脚本组件添加到游戏对象时遇到了同样的错误。通过以下格式修复了它:
wwtsj6pe5#
The type or namespace name 'xxxx' could not be found
的含义是因为您尝试使用不存在的类,或者您没有使用该类所在的命名空间。你的问题是你试图使用不存在的东西。
您正在尝试创建一个名为ES的可脚本化对象,但创建一个名为ES的类则完全不同。
如果您创建了ES类,您将看到错误消失了。