Специальные папки и порядок компиляции скриптов
Unity reserves some project folder names to indicate that the contents have a special purpose. Some of these folders have an effect on the order of script compilation. These folder names are:
See Special folder names for information on what these folders are used for.
There are four separate phases of script compilation. The phase where a script is compiled is determined by its parent folder.
Это имеет большое значение в случае, если скрипт должен обратится к классам, определенным в других скриптах. Основное правило заключается в том, чтобы не было ссылок на скрипты, компилирующиеся в фазе после. Все, что компилируется в текущей или ранее выполненной фазе, должно быть полностью доступно.
Другая ситуация бывает когда скрипт, написанный на одном языке, должен ссылаться на класс, определенный на другом языке(например, скрипт на языке UnityScript объявляет переменные класса, определенные в C# скрипте). В этом случае класс, на который ссылаются, должен быть скомпилирован в более ранней фазе.
Есть следующие фазы компиляции:-
Фаза 1: Выполняются скрипты из папок с именами Standard Assets, Pro Standard Assets и Plugins. Фаза 1: Выполняются скрипты из папок с именами Standard Assets, Pro Standard Assets и Plugins. Фаза 3: Все прочие скрипты, не находящиеся в папке Editor. Фаза 4: Все оставшиеся скрипты (т.е. находящиеся в папке Editor).
В общем случае, скрипт UnityScript ссылается на класс, определенный на языке C#. Здесь нужно разместить C# файл в папку Plugins, а UnityScript - в любую не специальную папку. Если этого не сделать, получите ошибку, говорящую о том, что C# класс не найден.
Note: Standard Assets work only in the Assets root folder.