Solución al error CS0103 (The name ‘UnityEngine’ does not exist…)

En ocasiones y sin saber muy bien cuál es el motivo, nuestras herramientas de trabajo comienzan a dar errores inexplicables. En este caso el síntoma fue que el editor Monodevelop que habitualmente utiliza Unity, comenzó a dar un error con TODOS los scripts de C# que trataba de abrir: error CS0103: The name ‘UnityEngine’ does not exist in the current context.

El script compilaba correctamente en Unity y no había instalado nada problemático así que el por qué del error era un misterio. Tras una búsqueda en Google, probé con varias de las soluciones que se ofrecían:

  • Cerrar Unity y Monodevelop y eliminar todos los fichero *.sln y *.*proj del raíz del proyecto. (El error persistía)
  • En Monodevelop, en el menú Project / Assembly-CSharp Options en la opción General del apartado Build, modificar la opción Target Framework a Mono / .NET 4.5. (Lo mismo que en la opción anterior).

Ninguna de estas soluciones eliminaba el error. Como era sólo en ese proyecto donde me pasaba, probé a crear un proyecto nuevo desde cero y los scripts creados en él funcionaban perfectamente.

Tras más de dos horas de investigación descubrí que eliminando la carpeta Standard Assets del proyecto el error desaparecía ya que, aparentemente, este sólo se mostraba cuando convivían ficheros en C# y en JavaScript. La “solución” fue eliminar esa carpeta y reimportar su contenido. Supongo que en algún momento, uno de los plugins que utilizo modificó algo en esa carpeta que provocaba la aparición del error. La vida del programador…