Unity 6.3
0 онлайн 57 гостей 3 в системе
Вход
Программирование в Unity Шаг 99 из 210

Импорт и настройка плагинов

Если у вас есть управляемый плагин или а родной плагин, вы можете импортировать его в Unity, а затем настроить его. Unity Editor рассматривает плагин как ассет, подобный скрипту, и вы можете настроить его в Inspector окно.

Конфигурации разъемов можно использовать для указания места запуска разъема, платформ и конфигураций платформ и условий их запуска.

Импорт плагина

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

Примечание: После того, как Unity загружает в память нативный плагин, он остается загруженным в сессии Unity Editor. Чтобы изменить код нативного плагина после его загрузки, необходимо перезапустить Unity. В противном случае предыдущая версия плагина остается в использовании. Эта проблема затрагивает только нативные плагины, которые запускаются в Редакторе, в том числе в режиме воспроизведения, когда архитектура нативного плагина соответствует архитектуре текущего запуска Редактора.

Поддерживаемые типы файлов и папок плагинов

Unity рассматривает файлы со следующими расширениями как плагины:

  • .a
  • .aar
  • .bc
  • .c
  • .cc
  • .cpp
  • .dll
  • .def
  • .dylib
  • .h
  • .jar
  • .jslib
  • .jspre
  • .m
  • .mm
  • .prx
  • .rpl
  • .so
  • .sprx
  • .suprx
  • .swift
  • .winmd
  • .xcframework
  • .xex
  • .xib

Unity также рассматривает некоторые папки как сгруппированные плагины. Unity не ищет дополнительные файлы плагинов в этих папках, поэтому все в папке считается единым плагином. Unity рассматривает папки со следующими расширениями как сгруппированные плагины:

  • .androidlib
  • .bundle
  • .framework
  • .plugin

Настройки по умолчанию плагина

Unity автоматически применяет установки по умолчанию для конкретной платформы к плагину, если путь плагина в папке Assets соответствует шаблону для конкретной платформы. Если путь не соответствует шаблону, Unity применяет к плагину установки по умолчанию для платформы Редактора.

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

Шаблоны путей к папкам Настройки по умолчанию
Активы/../Editor/(x86 или x86_64 или x64) Платформа: Только редактор

CPU (необязательно): На основе подпапки, если она существует.
Активы/../Plugins/(x86_64 или x86 или x64) Платформа: Windows, Linux и macOS

CPU (необязательно): На основе подпапки, если она существует.
Ассеты/Плагины/iOS Платформа: iOS
Активы/Плагины/WSA/(SDK80 или SDK81 или PhoneSDK81)/(x86 или ARM) Платформа: Универсальная Windows Платформа

SDK (необязательно): На основе подпапки, если она существует. По совместимости SDK81 является Win81, PhoneSDK81 является WindowsPhone81.

CPU (необязательно): На основе подпапки, если она существует

Примечание: Вы можете использовать ключевое слово Metro вместо WSA.

Изменение параметров плагина

В Unity, плагины либо управляемые или коренной. В следующей таблице показано, какие параметры актуальны для каждого типа плагина:

Настройка Управляемый Местные
Выберите платформы для плагина да да
Настройки платформы да да
Метки активов да да
Пакет активов да да
Общие положения да
Определение ограничений да
Настройки загрузки плагина да

Чтобы просмотреть и изменить параметры подключения в Inspector, выберите файл плагина в Project окно.

Параметры для управляемого модуля (слева) и основного модуля (справа).
Параметры для управляемого модуля (слева) и основного модуля (справа).

Примечание: Если плагин является генератором или анализатором исходного кода Roslyn, вы должны назначить RoslynAnalyzer как Asset Label в настройках плагина.

Общие параметры плагина

Выберите платформу для плагина и Настройки платформы определите, в каких сборках Unity включает плагин.

Выберите платформу для плагина

Платформа Описание
Любая платформа Позволяет модулю работать с любыми платформами, включая те, которые еще не установлены. Если этот параметр выбран, то следующие индивидуальные платформы будут выбраны с логикой включения или исключения.
Редактор Для режима воспроизведения и для любых скриптов, запущенных в режиме редактирования.
Автономный Windows, Linux и macOS.
Любая установленная платформа. Любая платформа, включенная в установку Unity, например Android, iOS и Web.

Настройки платформы

Для каждой выбранной платформы можно указать дополнительные параметры, специфические для платформы, такие как архитектура и зависимости CPU. Unity отображает только параметры, применимые к вашим платформам и, по возможности, к конкретному типу плагина на этой платформе. Например, файл плагина с расширением .dll может запускаться только на Windows, поэтому Unity отображает только параметры Windows.

Примечание: Платформы могут иметь свои собственные специфические настройки плагина, которые здесь не описаны. См. соответствующую тему Разработка платформы для информации о настройках и поведении на отдельных платформах.

Платформа Варианты Описание
Редактор
  • CPU архитектура
  • OS
Большинство управляемых плагинов совместимы с любыми CPU и OS.

Большинство основных плагинов совместимы только с одним OS и, в зависимости от того, как они были скомпилированы, могут быть совместимы только с одной архитектурой CPU.
Windows, Linux и macOS
  • CPU архитектура
  • OS
Управляемые библиотеки обычно совместимы с любой архитектурой OS и CPU, если только они не имеют доступа к конкретной системе APIs.

Основные библиотеки совместимы только с одним OS, но могут быть совместимы с 32-битной, 64-битной или обеими архитектурами CPU.
Универсальная платформа Windows
  • SDK
  • CPU архитектура
  • Скриптирование
Дополнительные сведения см. в Использование плагинов UWP с IL2CPP.
Android CPU архитектура Архитектура CPU должна соответствовать архитектуре, для которой была скомпилирована библиотека. Unity не проверяет ваши настройки.

См. также: AAR плагины и Android библиотеки.
iOS и tvOS
  • Зависимости фрейма
  • CPU архитектура
  • Добавить во встроенные двоичные файлы
  • Флаги компиляции

Укажите архитектуру CPU, с которой совместим ваш плагин. Unity предоставляет архитектуры симуляторов ARM64 и X64 для целей тестирования.

При выборе опции Добавить во встроенные бинарные файлы, Unity устанавливает параметры проекта Xcode для копирования файла плагина в окончательный пакет приложения. Выполните это для:
• Динамически загружаемые библиотеки.
• Пакеты и фреймворки, содержащие динамически загружаемые библиотеки.
• Любые ассеты и ресурсы, которые должны загружаться во время выполнения.

В поле Флаги компиляции установите флаги компиляции для файлов исходного кода плагина, которые Unity должен компилировать в рамках сборки.

Совет: Информацию о других общих настройках см. в Пакеты активов и Поиск в Редакторе.

Управляемые параметры плагина

Управляемые разъемы могут быть сторонними библиотеками или сборками, компилированными пользователем, которые необходимо включить в проект.

Общие — Автосправочник

Параметр Auto Reference управляет тем, как определения сборок в проекте ссылаются на файл плагина. При включении Auto Reference все предопределенные сборки и определения сборок автоматически ссылаются на файл плагина.

Автоссылка включена по умолчанию.

Чтобы ограничить область, в которой можно ссылаться на плагин, отключите Auto Reference. Затем вам нужно явно объявить все ссылки на этот плагин. Вы можете сделать это, если:

  • Необходимо предотвратить случайное использование модуля в скриптах.
  • Вы итерируете плагин и хотите сократить время компиляции. Если вы явно объявляете плагин, Unity перекомпилирует только зависимые сборки, а не весь проект.
  • Вы хотите предотвратить конфликт плагинов, используемых в пакете Asset Store от конфликта с другим кодом в проекте, в который импортируется пакет.

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

Плагин может использоваться несколькими сборками, но все сборки должны явно объявить зависимость. Дополнительные сведения об определениях сборок в Unity см. в разделе Определения сборок.

Примечание: Опция Auto Reference не влияет на то, включается ли файл в сборку. Для управления параметрами сборки для плагинов используйте Настройки платформы.

Общие — Проверка ссылок

Unity может проверить, что ссылки на ваш плагин доступны в проекте. Если вы не выполните эту проверку, пользователи могут столкнуться с ошибками во время выполнения, когда приложение пытается использовать отсутствующую ссылку.

Включите опцию Validate References для проверки:

  • Существуют ли ссылки на плагин. Например, если ваш плагин ссылается на плагин Newtonsoft.Json.dll, а Unity не может найти Newtonsoft.Json.dll, Unity отобразит ошибку.
  • Будут ли загружаться сильные именованные ссылки. Это важно, потому что сильные именованные ссылки должны соответствовать версии. Например, если вы компилируете плагин со ссылкой на “b.dll” версию 2.0.0, эта версия должна быть в проекте.

Если вы не хотите проверять сильные именованные ссылки, но все же хотите проверить наличие ссылок:

  1. В инспекторе Плагин включите Validate References.
  2. В Project Настройки > Игрок > Другие Настройки > отключить Проверка версии сборки.

Определение ограничений

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

Ограничения работают аналогично директиве препроцессора #if в C#, но на уровне сборки, а не скрипта. Подробнее об ограничениях см. в разделе Свойства Assembly Definition.

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

Тип: Чтобы указать, что символ должен быть неопределенным, предварите его отрицающим символом! (восклицательным знаком).

В следующем примере мы хотим, чтобы Unity загружал и ссылался на плагин только в не-IL2CPP скриптах для Unity 2018.3 или более поздних. Мы определяем два ограничения, и оба должны быть выполнены:

  • ENABLE_IL2CPP не определен
  • UNITY_2018_3_OR_NEWER определено
Определение ограничений для конкретного времени выполнения и версии Unity
Определение ограничений для конкретного времени выполнения и версии Unity

Настройки загрузки плагина — Загрузка при запуске

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

Чтобы загрузить плагины до того, как приложение выполнит какие-либо скрипты:

  1. Реализуйте UnityPluginLoad в плагине. См. Низкоуровневый интерфейс плагина.
  2. В Редакторе выберите Настройки загрузки плагина > Загрузка при запуске.

Тип: В качестве примера C# скрипт для вызова функций плагина, см. Руководство: Основные плагины.

Дополнительные ресурсы