Actualmente estoy desarrollando un proyecto usando Unity 2020.3.3f1 . Uso el sistema de control de versiones git y almaceno mi proyecto en un repositorio de Bitbucket . Cuando clono / extraigo mi proyecto a otra computadora (especialmente con macos), algunos de mis archivos cs. los archivos se muestran como un archivo desconocido (no un script) en la vista del proyecto, y algunas otras clases no pueden encontrar la clase definida en ese archivo. Cuando hago clic con el botón derecho y selecciono "reimportar" el archivo cs, lo recupero inmediatamente y lo construyo correctamente.
Esto me causa un problema cuando trato de compilar mi proyecto a través de la compilación de Unity Cloud, porque recibo un error sobre algunas clases faltantes que de hecho están allí.
[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: FAILUREDespués de eso, intenté extraer el proyecto de un dispositivo Mac, el proyecto tampoco pudo reconocer el mismo MaterialLayer.cs. Me recuperé fácilmente usando "reimportar". La configuración de mi proyecto / Serialización de activos: Forzar texto y "Control de versión / Metaarchivos visibles" ya están configurados.
Es una posibilidad remota y escribo la respuesta solo porque puedo adjuntar una imagen aquí:
Cada archivo en la solución C# tiene propiedades:
Así que mi sugerencia es verificar dos veces si esos archivos .cs "faltantes", "desconocidos" tienen las mismas propiedades establecidas que esos archivos .cs , que se reconocen correctamente.
Si usa LFS en git, este problema a veces ocurre cuando LFS se extrajo con un error o los metarchivos se rompieron durante la extracción de archivos, verifique dos veces sus .gitattributes . Es posible que la opción de combinación para .meta se haya asignado incorrectamente. Estoy usando este .gitattributes para mis proyectos, todavía no hay problemas con esto.