Если у вас есть управляемый подключаемый модульуправляемая сборка .NET, создается с помощью таких инструментов, как Visual Studio, для использования в Unity. Подробнее
См. в Словарь или собственный подключаемый модульсобственная библиотека кода для конкретной платформы, созданная вне Unity для использования в Unity. Позволяет вам получить доступ к таким функциям, как вызовы ОС и сторонние библиотеки кода, которые в противном случае были бы недоступны для Unity. Подробнее
См. в Словарь, вы можете импортировать его в Unity, затем настройте его. В редакторе — подключаемый модульНабор кода, созданный вне Unity, который создает функциональные возможности в Unity. В Unity можно использовать два типа подключаемых модулей: управляемые подключаемые модули (управляемые сборки .NET, созданные с помощью таких инструментов, как Visual Studio) и собственные подключаемые модули (библиотеки собственного кода для конкретной платформы). Подробнее
См. в Словарь рассматривается как актив, аналогичный сценарию, и вы можете настроить его в окне инспектора.
Вы можете использовать конфигурации подключаемого модуля, чтобы указать, где будет выполняться подключаемый модуль; какие платформы и какие конфигурации платформ, а также при каких условиях
Импорт плагина
Самый простой способ импортировать подключаемый модуль в проект — щелкнуть и перетащить подключаемый модуль в папку «Активы» или в одну из ее вложенных папок. Unity распознает определенные типы файлов и папок как подключаемые модули. Он также может применять настройки по умолчанию, которые соответствуют предполагаемой платформе подключаемого модуля.
Поддерживаемые типы файлов и папок для подключаемых модулей
Unity рассматривает файлы со следующими расширениями как подключаемые модули:
- a
- .aar
- .bc
- .c
- .cc
- .cpp
- .dll
- .def
- .dylib
- .h
- .jar
- .jslib
- .jspre
- .m
- .mm
- .prx
- .rpl
- .so
- .sprx
- .suprx
- .swift
- .winmd
- .xex
- .xib
Unity также рассматривает определенные папки как связанные подключаемые модули. Unity не ищет дополнительные файлы подключаемых модулей в этих папках, поэтому все содержимое папки считается одним подключаемым модулем. Unity рассматривает папки со следующими расширениями как подключаемый модуль:
- .androidlib
- .bundle
- .framework
- .plugin
Настройки плагина по умолчанию
Unity автоматически применяет настройки по умолчанию для конкретной платформы к подключаемому модулю, если путь к подключаемому модулю в папке «Активы» соответствует шаблону для конкретной платформы. Если путь не соответствует какому-либо шаблону, Unity применяет к подключаемому модулю стандартные настройки платформы Editor.
В следующей таблице показаны шаблоны путей, распознаваемые Unity. Части пути, указанные в скобках, являются необязательными. Если путь включает двойные точки, он может включать больше папок.
Шаблоны путей к папкам | Настройки по умолчанию |
---|---|
Assets/../Editor/(x86 or x86_64 or x64) |
Platform: Editor only
CPU (optional): На основе подпапки, если она есть. |
Assets/../Plugins/(x86_64 or x86 or x64) |
Platform: Windows, Linux and macOS
CPU (optional):На основе подпапки, если она есть. |
Assets/Plugins/iOS |
Platform: iOSМобильная операционная система Apple. More info See in Словарь |
Assets/Plugins/WSA/(SDK80 or SDK81 or PhoneSDK81)/(x86 or ARM) |
Platform: Универсальная платформа Windows
SDK (необязательно): на основе вложенной папки, если она есть. По соображениям совместимости SDK81 — это Win81, PhoneSDK81 — это WindowsPhone81. ЦП (необязательно): на основе подпапки, если она есть Примечание. Вы можете использовать ключевое слово Metro вместо WSA. |
Изменить настройки плагина
В Unity подключаемые модули либо управляемые, либо нативные. В следующей таблице показано, какие настройки относятся к каждому типу подключаемого модуля:
Настройка | Управляемый | Нативный |
---|---|---|
Select platforms for plugin | x | x |
Platform settings | x | x |
Asset Labels | x | x |
Asset Bundles | x | x |
General | x | |
Define Constraints | x | |
Plugin load settings | x |
Чтобы просмотреть и изменить настройки подключаемого модуля в Инспектореокне Unity, в котором отображается информация о выбранном в данный момент игровом объекте, ресурсе или настройки проекта, что позволяет просматривать и редактировать значения. Дополнительная информация
Смотрите в Словарь, выберите файл плагина в Проекте окно.
Common plug-in settings
Выберите платформу для плагина и Настройки платформы укажите, в какие сборки Unity включает плагин.
В следующей таблице описаны общие настройки.
Настройка | Параметры | Примечания | |
---|---|---|---|
Select platforms for plugin | • Редактор: для режима воспроизведения и для любых сценариев, запускаемых во время редактирования. • Автономно: Windows, Linux и macOS. • Любая платформа, включенная в вашу установку Unity, например Android, iOS и WebGL. |
Чтобы плагин работал с платформами, которые еще не включены в Unity, установите флажок Любая платформа. Вы можете исключить отдельные платформы, если вы их не поддерживаете.
При импорте подключаемого модуля Unity загружает его в память. Родной плагин нельзя выгрузить; он остается загруженным в сеансе Unity даже после изменения его настроек. Чтобы выгрузить плагин, необходимо перезапустить Unity. |
|
Platform settings | Для каждой выбранной вами платформы вы можете указать дополнительные условия, например архитектуру ЦП и зависимости См. в Словарь. Unity показывает только те настройки, которые применимы к вашим платформам и, по возможности, к вашему конкретному типу подключаемого модуля на этой платформе. Например, собственный файл подключаемого модуля с расширением .dll может работать только в Windows, поэтому Unity показывает только настройки Windows. |
||
Editor | • Архитектура ЦП • ОС |
Большинство управляемых подключаемых модулей совместимы с любым ЦП и ОС.
Большинство нативных подключаемых модулей совместимы только с одной ОС и, в зависимости от того, как они были скомпилированы, могут быть совместимы только с одной архитектурой ЦП. |
|
Windows, Linux and macOS | • CPU architecture • OS |
Управляемые библиотеки обычно совместимы с любой архитектурой ОС и ЦП, если только они не обращаются к определенным системным API.
Нативные библиотеки совместимы только с одной ОС, но могут быть совместимы с 32-разрядной, 64-разрядной или обеими архитектурами ЦП. |
|
Universal Windows Platform | See Универсальная платформа Windows: подключаемые модули для IL2CPP Scripting Backend. | ||
Android | CPU architecture | Архитектура ЦП должна соответствовать архитектуре, для которой была скомпилирована библиотека. Unity не проверяет ваши настройки.
См. также: подключаемые модули AAR и библиотеки Android. |
|
iOS and tvOS | • Зависимости платформы • Добавить во встроенные двоичные файлы • Флаги компиляции |
Когда вы выбираете параметр Добавить во встроенные двоичные файлы, Unity устанавливает параметры проекта Xcode для копирования файла подключаемого модуля в окончательный пакет приложения. Сделайте это для: • Динамически загружаемые библиотеки. • Пакеты и платформы, содержащие динамически загружаемые библиотеки. • Любые активы и ресурсы, которые необходимо загрузить во время выполнения. В поле Флаги компиляции установите флаги компиляции для файлов исходного кода подключаемых модулей, которые Unity должна компилировать как часть сборки. |
Совет. Информацию о других распространенных настройках см. в разделах Наборы ресурсов и Поиск в редакторе.
Управляемые настройки подключаемого модуля
Управляемые подключаемые модули могут быть сторонними библиотеками или сборками, скомпилированными пользователем, которые вы хотите включить в проект.
Общие — Автоссылка
Настройка Автоссылка определяет, как определения сборки в проекте ссылаются на файл подключаемого модуля. Когда вы включаете автоссылку, все предопределенные сборки и определения сборок автоматически ссылаются на файл подключаемого модуля.
Автоматическая ссылка включена по умолчанию.
Чтобы ограничить область, в которой можно ссылаться на подключаемый модуль, отключите автоссылку. Затем вам нужно явно объявить все ссылки на этот плагин. Возможно, вы захотите сделать это, если:
* Вы хотите запретить скриптыфрагмент кода, позволяющий создавать собственные компоненты, запускать игровые события, изменять свойства компонентов через время и реагировать на пользовательский ввод любым удобным для вас способом. Подробнее
См. в Словарь ошибочное использование подключаемого модуля.
* Вы дорабатываете плагин и хотите сократить время компиляции. Если вы явно объявляете подключаемый модуль, Unity перекомпилирует только зависимые сборки, а не весь ваш проект.
* Вы хотите предотвратить конфликт подключаемых модулей, используемых в пакете Asset Store, с другим кодом в проекте, в который импортирован пакет.
Если вы отключите Автоссылку, Unity не сможет ссылаться на подключаемый модуль из предопределенных сборок, которые он создает для вашего проекта. Эти предопределенные сборки содержат все сценарии в вашем проекте, которые вы не назначили другой сборке с помощью файла определения сборки. Чтобы ссылаться на классы, функции или другие ресурсы из подключаемого модуля, у которого отключено свойство Автоматическая ссылка, код ссылки должен находиться в сборке, созданной с помощью файла определения сборки. Например, если набор скриптов в вашем проекте использует плагин, вы должны создать файл определения сборки для этих скриптов и добавить явную ссылку на плагин в файл определения.
Подключаемый модуль может использоваться более чем одной сборкой, но все сборки должны явно объявлять зависимость. Чтобы узнать больше об определениях сборки в Unity, см. Определения сборки.
Примечание. Параметр Автоссылка не влияет на то, включен ли файл в сборку. Чтобы управлять настройками сборки для подключаемых модулей, используйте настройки платформы.
Общие — Проверка ссылок
Unity может проверить, доступны ли ссылки на ваш плагин в проекте. Если вы не выполните эту проверку, пользователи могут столкнуться с ошибками во время выполнения, когда приложение попытается использовать отсутствующую ссылку.
Включите параметр Проверить ссылки, чтобы проверить:
- Существуют ли ссылки на подключаемый модуль. Например, если ваш подключаемый модуль ссылается на подключаемый модуль Newtonsoft.Json.dll, а Unity не может найти Newtonsoft.Json.dll, Unity отображает ошибку.
- Смогут ли загружаться ссылки со строгими именами. Это важно, потому что ссылки со строгими именами должны соответствовать версии. Например, если вы компилируете подключаемый модуль со ссылкой на «b.dll» версии 2.0.0, эта версия должна быть в проекте.
Если вы не хотите проверять ссылки со строгими именами, но хотите проверить их существование:
- В инспекторе плагинов включите Проверять ссылки.
- В Настройки проекта > Проигрыватель > Другие настройки > отключите Проверку версии сборки.
Определить ограничения
Вы можете указать условия, при которых Unity загружает подключаемый модуль в память и ссылается на него. Эти условия являются символами, которые должны быть выполнены, что означает, что они либо определены, либо не определены.
Ограничения работают так же, как директива препроцессора #if в C#, но на уровне сборки, а не на уровне скрипта. Вы можете узнать больше об ограничениях в свойствах определения сборки.
Вы можете использовать любые встроенные символы определения Unity или добавить символы в Настройки проекта > Проигрыватель > Другие настройки > Компиляция сценария > Сценарий определения символов. Добавляемые вами символы зависят от платформы, поэтому вам необходимо определить их для каждой соответствующей платформы. Дополнительную информацию, включая список встроенных символов, см. в разделе Компиляция, зависящая от платформы.
Совет. Чтобы указать, что символ не должен быть определен, добавьте к нему префикс отрицания ! (восклицательный знак).
В следующем примере мы хотим, чтобы Unity загружала подключаемый модуль и ссылалась на него только в средах выполнения сценариев, отличных от IL2CPP, для Unity 2018.3 или новее. Мы определяем два ограничения, и оба должны быть соблюдены:
ENABLE_IL2CPP
не определенUNITY_2018_3_OR_NEWER
определен Наконец, Unity обрабатывает найденные папки с родительским путем, точно совпадающим с Assets/Plugins/Android/, как папку подключаемого модуля библиотеки Android. Unity обрабатывает такие папки так же, как и папки со специальными расширениями: .plugin, .bundle и .framework.
Настройки загрузки плагина — загрузка при запуске
Вы можете начать выполнение собственного кода, который не зависит от инициализации графики, сценариев, загрузки ресурсов, сценСцена содержит среды и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
См. в Словарь и т. д. Это отличается от того, как проигрыватель по умолчанию загружает собственный плагин, который заключается в ожидании первого вызова одной из функций плагина, обычно выполняемого сценарием.
Чтобы загрузить подключаемые модули до того, как приложение выполнит какие-либо сценарии:
- Реализуйте
UnityPluginLoad
в подключаемом модуле. См. раздел Низкоуровневый собственный интерфейс подключаемого модуля. - В редакторе выберите Настройки загрузки подключаемого модуля > Загружать при запуске.
Совет. Пример скрипта C#, вызывающего функции подключаемых модулей, см. в Руководстве: собственные подключаемые модули.