Compilación dependiente de la plataforma
Funciones genéricas

Carpetas especiales y orden de compilación script

Unity reserva algunos nombres de carpeta del proyecto para indicar que el contenido tiene un propósito especial. Algunas de estas carpetas tienen un efecto en el orden de compilación script. Estos nombres de carpeta son:

  • Assets
  • Editor
  • Editor default resources
  • Gizmos
  • Plugins
  • Resources
  • Standard Assets
  • StreamingAssets

Mire los nombres especiales de carpeta para información acerca de cómo estas carpetas se utilizan.

Hay cuatro fases separadas de compilación script. La fase dónde un script se compila se determina por su carpeta padre.

Esto es significativo en los casos en que un script debe referirse a las clases definidas en otros scripts. La regla básica es que cualquier cosa que se compila en una fase después de la actual no se puede referenciar. Todo lo que se compila en la fase actual o en la fase anterior está disponible totalmente.

Otra situación donde esto ocurre es cuando un script escrito en un lenguaje debe referirse a una clase definida en otro lenguaje (por ejemplo, un archivo UnityScript que declare variables de una clase definida en un script C#). La regla aquí es que la clase siendo referencia debe ser compilada en una fase anterior.

Las fases de compilación son como siguen:

  • Fase 1: Los scripts en tiempo de ejecución en carpetas llamadas Standard Assets, Pro Standard Assets y Plugins.
  • Fase 2: Los scripts del editor en carpetas llamadas Editor que están en cualquier parte dentro de carpetas de nivel superior llamadas Standard Assets, Pro Standard Assets y Plugins.
  • Fase 3: Todas los otros scripts que no están dentro de una carpeta llamada Editor.
  • Fase 4: Todos los scripts que falten (aquellos que están dentro de una carpeta llamada Editor).

Un ejemplo común de la importancia de este orden se produce cuando un archivo UnityScript necesita hacer referencia a una clase definida en un archivo C#. Para lograr esto, debe colocar el archivo C# dentro de una carpeta de Plugins, y el archivo UnityScript en una carpeta no especial. Si no hace esto, se genera un error diciendo que no se puede encontrar la clase C#.

Nota: Los Standard Assets funcionan solo en la carpeta raíz Assets.

Compilación dependiente de la plataforma
Funciones genéricas