Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Unity Script.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
58 Кб
Скачать
☆

1. Все скрипты в "Standard Assets", "Pro Standard Assets" или "Plugins" компилируются первыми.

Скрипты в этих папках не могут напрямую обращаться к скриптам вне этих папок.

Невозможно обращаться к классам или их переменным напрямую, однако возможна коммуникация с ними с использованием GameObject.SendMessage.

2. Все скрипты в "Standard Assets/Editor", "Pro Standard Assets/Editor" или "Plugins/Editor" компилируются далее.

Если Вы хотите использовать пространство имен UnityEditor тогда поместите Ваши скрипты в эти папки. Например для добавления меню или создания пользовательского мастера Вам нужно поместить Ваши скрипты в эти папки.

Эти скрипты могут иметь прямой доступ к скриптам из предыдущей группы.

3. Все другие скрипты вне "Editor" компилируются далее.

Все скрипты не в папках выше или не в папке "Editor" компилируются далее.

Все скрипты, которые компилируются на этом шаге имеют доступ ко всем скрипта в первой группе ("Standard Assets", "Pro Standard Assets" or "Plugins"). Это позволяет Вам взаимодействовать между различными языками программирования. Например, если вы хотите создать Javascript, который использует C# скрипт: поместите C# в папку "Standard Assets" а Javascript вне этой папки. Javascript теперь сможет напрямую обращаться к C# скрипту.

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

4. Все скрипты в папке "Editor" компилируются последними.

Если Вы хотите использовать пространство имен UnityEditor тогда поместите Ваши скрипты в эту папку. Например для добавления меню или создания пользовательского мастера Вам нужно поместить Ваши скрипты в эту папку.

Эти скрипты имеют доступ ко всем скриптам из всех предыдущих групп.

Добавочно любой скрипт в папке, называемой WebPlayerTemplates не компилируется восе.

Условная компиляция Conditional compilation against the Unity version.

Начиная с версии Unity 2.6 были добавлены определения препроцессора C#. Эти определения указывают используемую версию Unity и предназначены для условной компиляции с учетом специфических особенностей данной версии. Например:

// Указываем версию с учётом ревизии

#if UNITY_2_6_0

// Используем особенности, присущие версии 2.6.0

#endif

// Указываем версию без учета ревизии

#if UNITY_2_6

// Используем особенности версии 2.6.x

#endif

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

Совместимость Unity и Mono

Вы можете использовать библиотеки классов .Net в скриптах, которые Вы пишете для Unity. В зависимости от выбранного в установках проекта уровня совместимости с .Net, Unity более или менее полно поддерживает библиотеки классов.

Generic функции

Некоторые функции в этом мануале (например, различные функции GetComponent) перечислены с вариантом, который имеет букву T или имя типа в угловых скобках после имени функции:

function FuncName.<T>(): T;

Такие функции известны как "generic" функции. Значимым для скриптинга является что вы получите указанный тип параметра и/или возвращаемого значения когда вы вызываете эти функции. В JavaScript это может быть использовано, чтобы обойти ограничения динамической типизации:

// Тип правильно определяется, т.к. он определен в теле функции.

var obj = GetComponent.<Rigidbody>();

В C#, это может сохранить множество нажатий клавиш и преобразований типов:

Rigidbody rb = go.GetComponent<Rigidbody>();

// ...сравните с:

Rigidbody rb = (Rigidbody) go.GetComponent(typeof(Rigidbody));

Любая функция, которая имеет generic вариант указанный в мануале позволяет использовать этот специальный синтаксис вызова.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]