🎮 UnityDocs

The associated script can not be loaded (script en amarillo)

Ese componente con 'Missing (Mono Script)' o el aviso amarillo de que no se puede cargar el script: por qué pasa (el nombre no coincide, errores de compilación, se movió el archivo) y cómo recuperar las referencias.

🐛 ErrorPrincipiante✅ RevisadoUnity 6.0 LTSActualizado 2026-07-15
DificultadConceptual Código Matemáticas
Tiempo📖 Lectura 5 min

El síntoma#

En el Inspector, un componente aparece como "Missing (Mono Script)" o sale un aviso amarillo: "The associated script can not be loaded. Please fix any compile errors and assign a valid script." El objeto tiene "un script" pero Unity no sabe cuál.

Las causas (de la más común a la menos)#

1. Hay errores de compilación#

Si cualquier script del proyecto no compila, Unity no puede cargar ninguno, y todos los componentes de script aparecen rotos temporalmente. Mira la Console: si hay errores rojos, arréglalos y el aviso desaparecerá. Ver errores de compilación.

Primero, mira la Console

Antes de tocar nada, comprueba si hay errores de compilación. Muy a menudo el "script perdido" no está perdido: es que otro archivo no compila y Unity no ha podido cargar la clase. Arregla los rojos primero.

2. El nombre del archivo no coincide con la clase#

Para un MonoBehaviour, el nombre del archivo debe ser idéntico al de la clase:

C#
// Este código DEBE estar en un archivo llamado ControladorJugador.cs
public class ControladorJugador : MonoBehaviour { }

Si renombraste la clase pero no el archivo (o al revés), Unity no puede asociarlos. Haz que coincidan exactamente (mayúsculas incluidas).

3. Se movió, renombró o borró el archivo desde fuera de Unity#

Mueve y renombra scripts DENTRO de Unity

Unity guarda un identificador único de cada archivo en su .meta. Si mueves, renombras o borras un .cs (o su .meta) desde el explorador de archivos en vez de desde Unity, se rompe el vínculo entre el componente y el script, y aparece "Missing". Haz estas operaciones siempre dentro de la ventana Project de Unity, que mantiene los .meta sincronizados. Ver Git para Unity.

4. Faltó subir el .meta (en Git)#

Si trabajas en equipo y alguien no subió el .meta del script, a los demás les llega el script sin su identificador y las referencias se rompen. Sube siempre los .meta (ver Git para Unity).

Cómo recuperar las referencias#

Si el script existe pero el componente quedó como "Missing", tras arreglar la causa:

  1. Con errores de compilación: arréglalos; los componentes suelen recuperarse solos.
  2. Con nombre: haz coincidir archivo y clase; vuelve a Unity y espera a que recompile.
  3. Si el componente sigue en "Missing" pero el script ya existe: en el campo Script del componente (arriba, en amarillo), arrastra el .cs correcto. Recupera las referencias de sus campos si se perdieron.
  4. Herramienta útil: GameObject → (menú) → Remove Missing Scripts o buscar componentes perdidos en la escena para limpiarlos.

Prevenirlo#

  • Mantén archivo = clase desde el primer momento.
  • Mueve y renombra scripts dentro de Unity.
  • Sube los .meta al control de versiones.
  • Vigila la Console: no dejes errores de compilación "para luego".

Errores frecuentes#

  • Creer que el script se perdió cuando en realidad hay un error de compilación en otro archivo.
  • Renombrar la clase y olvidar renombrar el archivo (o viceversa).
  • Mover scripts desde el explorador de archivos y romper los .meta.
  • No subir los .meta en Git.

Resumen#

El aviso "associated script can not be loaded" / "Missing (Mono Script)" significa que Unity no puede vincular el componente con su clase. Causas, en orden: errores de compilación (mira la Console primero), el nombre del archivo no coincide con la clase, se movió/renombró el script fuera de Unity (rompiendo el .meta), o faltó subir el .meta en Git. Arregla la causa, y si hace falta arrastra el .cs correcto al campo Script del componente.

Fuentes y para profundizar