先前运行的 Unity 项目中存在多个脚本和命名空间错误。找不到类型或命名空间名称 'GUIColorOverride'

Multiple script and namespace errors on a previously working Unity project . Type or namespace name 'GUIColorOverride' could not be found

我在一个相对较小的 Unity 项目上遇到了一些不寻常的错误,其中有六个用 Visual Studio 编写的 c# 脚本。一切正常,周末后我又回来了。打开后,有 18 个新错误阻止代码编译,我花了几个小时试图弄清楚发生了什么。

主要错误是说 Type or namespace name 'GUIColorOverride' could not be foundassociated script cannot be loaded, assign a valid script 之类的内容,即使它们已链接并且我可以看到脚本在 Visual Studio 中没有错误。我什至完全卸载并重新启动了 Unity,然后进行了全新安装。这并没有解决它。

我尝试了许多其他操作,例如从资产文件夹中备份脚本,然后将其删除。打开项目并将它们粘贴回 'clean' 个新脚本。这没有用。我正在使用 Unity 的 Cloud Collab,因此甚至能够使用它返回到项目的早期推送(所有这些都有效)。没有。

解决了!问题是我一直在使用的本地项目文件夹已连接到 Google 备份和同步。这弄乱了 PackageCache 中某些文件夹中的某些文件,特别是 MyProject > Library > PackageCache > com.unity.timeline@1.2.13 > Editor > 目录中的某些文件。

[FIX] 为了修复并防止将来发生这种情况,我关闭了我的 Unity 项目的 Google 备份和同步,现在我只使用 Unity Collab 和 Git .使用 Unity 控制台中显示的特定错误,我找到了在我损坏的项目中导致这些错误的 Unity 创建文件的确切路径,并将它们替换为工作项目中的相同文件。这修复了所有错误。这些文件夹中一定有一些损坏或部分同步的文件,导致 Unity 大发雷霆。希望对某人有所帮助!

您应该从备份中排除这些!


基本上,您可以通过例如排除也会从 git 中排除的任何内容this "official" .gitignore Unity 项目文件。

此处列出的任何文件和文件夹将由 Unity 自动重新生成,不应出现在任何版本控制/备份中。

整个 Library 文件夹尤其是其中的一部分,因为它的内容变化非常快,并且每次更改脚本、install/remove 包等时都会重新编译。

查看 Unity Manual - Behind the Scenes 了解更多详细信息

When backing up a project, or adding a project to a Version Control Repository, you should include the main Unity project folder, containing both the Assets and ProjectSettings folders. All the information in these folders is crucial to the way Unity works. You should omit the Library and Temp folders for backup purposes.


要解决 Library 文件夹中已经存在的问题,大多数情况下您只需关闭 Unity,通过文件浏览器删除整个 Library 文件夹,然后再次打开 Unity 即可修复它 &rightarrow ; Unity 将重建 Library