Para la mayoría de tiempo, usted puede escoger cualquier nombre que usted le guste para las carpetas de su proyecto pero Unity reserva algunos nombres para indicar que el contenido tiene un propósito especial. Algunas de estas carpetas tienen un efecto en el orden de compilación de script. Esencialmente, hay cuatro fases separadas de compilación de script y en la fase dónde el script va a compilar será determinado por la carpeta padre.
Este es uno de los casos significantes dónde un script debe referir clases definidas en otros scripts. La regla básica es que cualquier cosa que sea compilada en una fase después de que el actual no puede ser referencia. Cualquier cosa que sea compilada en la fase actual o en una fase más temprana está completamente disponibles.
Otra situación ocurre cuando un script es escrito en otro lenguaje y debe ser referenciado a una clase definida en otro lenguaje (dijamos, en un archivo UnityScript que declere variables de una clase definida en script C#). La regla aquí es que la clase siendo referencia debe ser compilada en una fase temprana.
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 1: Los scripts en tiempo de ejecución en carpetas 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 (ie, los que están dentro de una carpeta llamada Editor).
Adicionalmente, cualquier script dentro de una carpeta llamada WebPlayerTemplates en el nivel superior de la carpeta de Assets no será compilada en absoluto. Este comportamiento es un poco diferente del nombre de otras carpetas especiales que también funcionan dentro de sub-carpetas (eg, Scripts/Editor funcionan como una carpeta de script de editor pero Scripts/WebPlayerTemplates no previene compilación).
Un ejemplo común es dónde un archivo UnityScript necesita referenciar una clase definida en un archivo C#. Usted puede lograr esto colocando el archivo C# dentro de una carpeta de Plugins y el archivo UnityScript en una carpeta que no sea especial. Si usted no hace esto, usted obtendrá un error diciendo que la clase C# no puede ser encontrada.
Tenga en cuenta. Los Standard Assets no funcionan en la carpeta raiz de los Assets.