有时候,当我开始游戏时,我会收到毫无意义的警告。我不知道它们来自何处,并且我没有任何对象可以解决不存在的脚本。如何删除或修复这些消息?
控制台:
检查器:
当我在检查器中右键单击文件的图标时,我有两个可能的选择。它们都不起作用,或者当我尝试单击它们时,什么都没有发生。
检查器上下文菜单:
答案 0 :(得分:1)
当文件和名称类的名称不同时会发生这种情况。
示例:
public class Cube : MonoBehaviour
在这种情况下,Unity无法链接文件和类。两者必须具有相同的名称。
public class SingleCube : MonoBehaviour
答案 1 :(得分:1)
我也有同样的问题。我认为这是由于删除默认场景但未更改构建设置中的“构建中的场景”引起的。这是我的固定方法。
答案 2 :(得分:0)
当您更改了脚本的C#类名,或者在项目中更改了脚本的文件名,以致于它们不匹配时,就会发生这种情况。就您而言,问题在于您在Inspector屏幕截图中突出显示的脚本是什么。
答案 3 :(得分:0)
通常在将脚本分配给对象然后从项目中删除脚本时显示。如果您确定场景中没有对象分配此脚本,那么也许某些在运行时实例化的对象呢?另外,请查看this page,它可能会帮助您找到这些错误的来源。
答案 4 :(得分:0)
您可以从检查器面板中删除此无法访问的脚本,然后再次将其作为组件加载。因此,您可以重新使用脚本。
答案 5 :(得分:0)
答案 6 :(得分:0)
在我的情况下,问题是对已删除的组件的引用,在预制文件中,该文件被不包含该组件的变体覆盖。因此,当我实例化该变体时,缺失的组件在被删除时被简要引用,导致此通用警告没有有用的识别数据。我是通过以下方式找到的:
一次恢复所有最近删除的组件,直到错误停止
从该组件的 .meta 文件中复制 guid。
对所有 *.prefab 文件(还有 *.scene 和 *.asset)中的 guid 进行原始文本搜索
这需要项目设置 > 编辑器 > 资产序列化 > 模式 = 强制文本。
答案 7 :(得分:0)
在我的例子中,我在场景上使用了窗口->渲染->照明->“生成照明”......例如“场景1”。 Unity3d 然后在与我的 Scene1 资产平行的 Scenes 目录中创建了一个 Scene1 文件夹。
后来我把Scene1重命名为Level1,但是Scene1目录没有相应的改变。我遇到了这些错误,直到我将照明文件夹也重命名为 Level1。
答案 8 :(得分:-1)
如果或当您第一次启动项目时–移动和/或重命名“ scenes”文件夹中包含的原始默认场景,Unity将抛出数量不断增加的这些错误引用,直到您结束坐在公园里向自己扔面包屑。他们可以成千上万。
解决方法如下:
基本上,“另存为...”将覆盖所有旧的旧脚本连接。
如果您不记得游戏中哪个场景是原始重命名的场景,则需要为每个场景重做“另存为...”部分。但是,您只需要执行一次“构建设置”。
就是这样。您永远不应再弹出这些随机脚本。希望有帮助。