Version: 5.3 (switch to 5.4b)
Coroutines
Пространства имён

Специальные папки и порядок компиляции скриптов

По большей части, вы можете выбирать любые имена для папок вашего проекта. Однако в Unity зарезервированы некоторые имена, которые указывают на то, что содержащийся в папках контент имеет специальное назначение. Некоторые из них влияют на порядок компиляции скриптов. По сути, у компиляции скриптов есть четыре отдельные фазы и порядок их компилирования определяется родительской папкой.

Это имеет большое значение в случае, если скрипт должен обратится к классам, определенным в других скриптах. Основное правило заключается в том, чтобы не было ссылок на скрипты, компилирующиеся в фазе после. Все, что компилируется в текущей или ранее выполненной фазе, должно быть полностью доступно.

Другая ситуация бывает когда скрипт, написанный на одном языке, должен ссылаться на класс, определенный на другом языке(например, скрипт на языке UnityScript объявляет переменные класса, определенные в C# скрипте). В этом случае класс, на который ссылаются, должен быть скомпилирован в более ранней фазе.

Есть следующие фазы компиляции:-

Фаза 1: Выполняются скрипты из папок с именами Standard Assets, Pro Standard Assets и Plugins.

Фаза 1: Выполняются скрипты из папок с именами Standard Assets, Pro Standard Assets и Plugins.

Фаза 3: Все прочие скрипты, не находящиеся в папке Editor.

Фаза 4: Все оставшиеся скрипты (т.е. находящиеся в папке Editor).

Дополнительно, любой скрипт, находящийся в папке WebPlayerTemplates, в самом верху папки Assets, вообще не будет скомпилирован. Это поведение немного отличается для вложенных папок с другими именами (например, Scripts/Editor работает как папка для скриптов редактора и Scripts/WebPlayerTemplates не помешает компиляции).

В общем случае, скрипт UnityScript ссылается на класс, определенный на языке C#. Здесь нужно разместить C# файл в папку Plugins, а UnityScript - в любую не специальную папку. Если этого не сделать, получите ошибку, говорящую о том, что C# класс не найден.

Note. Standard Assets work only in the Assets root folder.

Coroutines
Пространства имён