开发者问题收集

从 git 拉取项目后,Unity 无法识别某些 .cs 文件

2021-05-01
990

我目前正在使用 Unity 2020.3.3f1 开发一个项目。我使用 git 版本控制系统并将我的项目存储在 Bitbucket 存储库中。当我将项目克隆/拉取到另一台计算机(尤其是使用 macos 的计算机)时,我的一些 cs. 文件在项目视图中显示为未知文件(不是脚本),并且其他一些类找不到该文件上定义的类。当我右键单击并选择“重新导入”cs 文件时,立即恢复并成功构建。

当我尝试通过 Unity Cloud build 构建我的项目时,这给我带来了问题,因为我收到有关某些确实存在的缺失类的错误。

[Unity] Initialize engine version: 2020.3.6f1 (338bb68529b2)
3: [Unity] -----CompilerOutput:-stdout--exitcode: 1--compilationhadfailure: True--outfile: Temp/ToonyColorsPro.Editor.dll
4: [Unity] Assets/JMO Assets/Toony Colors Pro/Editor/Shader Generator/Config.cs(192,13): error CS0246: The type or namespace name 'MaterialLayer' could not be found (are you missing a using directive or an assembly reference?)
5: [Unity] Assets/JMO Assets/Toony Colors Pro/Editor/Shader Generator/ShaderProperty.cs(417,40): error CS0246: The type or namespace name 'MaterialLayer' could not be found (are you missing a using directive or an assembly reference?)
6: [Unity] Assets/JMO Assets/Toony Colors Pro/Editor/Shader Generator/Config.cs(173,59): error CS0246: The type or namespace name 'MaterialLayer' could not be found (are you missing a using directive or an assembly reference?)
7: [Unity] Assets/JMO Assets/Toony Colors Pro/Editor/Shader Generator/Config.cs(192,13): error CS0246: The type or namespace name 'MaterialLayer' could not be found (are you missing a using directive or an assembly reference?)
8: [Unity] Assets/JMO Assets/Toony Colors Pro/Editor/Shader Generator/ShaderProperty.cs(417,40): error CS0246: The type or namespace name 'MaterialLayer' could not be found (are you missing a using directive or an assembly reference?)
9: [Unity] Assets/JMO Assets/Toony Colors Pro/Editor/Shader Generator/Config.cs(173,59): error CS0246: The type or namespace name 'MaterialLayer' could not be found (are you missing a using directive or an assembly reference?)
10: ! build of 'default-ios-ad-hoc' failed. exit
11: publishing finished successfully.
12: Finished: FAILURE

之后,我尝试从 Mac 设备拉取项目,该项目也无法识别相同的 MaterialLayer.cs。我使用“重新导入”轻松恢复。 我的项目设置/资产序列化:强制文本和“版本控制/可见元文件”已经设置。

2个回答

这是一个长镜头,我写答案只是因为我可以在这里附加图片:

C# 解决方案中的每个文件都有属性:

在此处输入图像描述

所以我的建议是仔细检查那些“丢失”、“未知”的 .cs 文件是否具有与那些正确识别的 .cs 文件相同的属性设置。

Michał Turczyn
2021-08-02

如果您在 git 上使用 LFS,那么当 LFS 出现错误或在提取文件期间元文件损坏时,有时会发生此问题,请仔细检查您的 .gitattributes.meta 的合并选项可能分配错误。我正在为我的项目使用 .gitattributes ,仍然没有问题。

Arcueid D'athemon
2021-08-07