Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Unity поддерживает собственные плагиныНабор кода, созданный вне Unity, который создает функциональность в Unity. В Unity можно использовать два типа подключаемых модулей: управляемые подключаемые модули (управляемые сборки .NET, созданные с помощью таких инструментов, как Visual Studio) и собственные подключаемые модули (библиотеки собственного кода для конкретной платформы). Подробнее
См. в Словарь
для Android, написанный на C/C++ и упакованный в общая библиотека (.so) или статическая библиотека (.a). При использовании серверной части сценариев IL2CPP вы можете использовать исходные файлы C/C++ в качестве подключаемых модулей, и Unity компилирует их вместе с файлами, сгенерированными IL2CPP. Сюда входят все исходные файлы C/C++ с расширениями .c, .cc, .cpp и .h.

Совместимость скриптов с серверной частью.

В следующей таблице показано, какие бэкэнды сценариевфреймворк, поддерживающий сценарии в Единстве. Unity поддерживает три различных бэкэнда для сценариев в зависимости от целевой платформы: Mono, .NET и IL2CPP. Однако универсальная платформа Windows поддерживает только два: .NET и IL2CPP. Подробнее
См. в Словарь
поддерживают различные типы собственные подключаемые модулисобственная библиотека кода для конкретной платформы, созданная вне Unity для использования в Unity. Позволяет вам получить доступ к таким функциям, как вызовы ОС и сторонние библиотеки кода, которые в противном случае были бы недоступны для Unity. Подробнее
См. в Словарь
.

Бэкэнд скриптов Общая библиотека Статическая библиотека Исходные файлы C/C++
IL2CPPРазработанный Unity сервер сценариев, который можно использовать в качестве альтернативы Mono при создании проектов для некоторых платформ. More info
See in Словарь
Да Да Да
Mono Да Нет Нет

Создание и использование собственного подключаемого модуля

Чтобы создать подключаемый модуль C++ для Android, используйте Android NDK и ознакомьтесь с шагами, необходимыми для создания общей библиотеки. То же самое относится и к статическим библиотекам.

Если вы используете C++ для реализации подключаемого модуля, вы должны убедиться, что методы объявлены со связью C, чтобы избежать проблемы с искажением имен. По умолчанию только исходные файлы C с расширением .c в подключаемых модулях имеют связь C (не C++).

extern "C" { float Foopluginmethod (); }

После создания библиотеки скопируйте выходные файлы .so в свой проект Unity. В Инспектореокне Unity, в котором отображается информация о текущем выбранном игровом объекте, активе или настройках проекта, что позволяет вам проверять и редактировать ценности. Дополнительная информация
Посмотрите в Словарь
, отметьте файлы .so как совместимые с Android и установите требуемая архитектура ЦП в раскрывающемся списке:

Параметры импорта собственного (C++) подключаемого модуля, отображаемые в окне инспектора
Параметры импорта собственного (C++) подключаемого модуля, отображаемые в окне инспектора

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

[DllImport ("pluginName")] private static extern float Foopluginmethod();

Обратите внимание, что pluginName не должен включать префикс («lib») или расширение («.so») имени файла. Рекомендуется обернуть все собственные вызовы методов подключаемых модулей дополнительным уровнем кода C#. Этот код проверяет Application.platform и вызывает собственные методы только тогда, когда приложение запущено на реальном устройстве; фиктивные значения возвращаются из кода C# при запуске в редакторе. Используйте определения платформы для управления компиляцией кода, зависящего от платформы.

Когда вы используете исходные файлы C/C++ в качестве подключаемых модулей, вы вызываете их из C# таким же образом, за исключением того, что вы используете __Internal для имени подключаемого модуля, например :

[DllImport ("__Internal")] private static extern float Foopluginmethod();

Пример встроенного модуля (C++)

Zip-файл AndroidNativePlugin.unitypackage содержит простой пример подключаемого модуля с собственным кодом, распространяемого в виде пакета Unity.

В примере показано, как вызывать код C++ из приложения Unity. В пакет входит сценаСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
См. в Словарь
, в котором отображается сумма двух значений, рассчитанная родным плагином. -в. Для компиляции подключаемого модуля необходимо установить Android NDK.

Чтобы установить образец:

  1. Загрузите ZIP-файл.
  2. Извлеките файл AndroidNativePlugin.unitypackage.
  3. Откройте редактор Unity.
  4. Создайте новый проект.
  5. В новом проекте нажмите АктивыЛюбой носитель или данные, которые можно использовать в вашей игре или проекте. Ресурс может быть получен из файла, созданного вне Unity, например, из 3D-модели, аудиофайла или изображения. Вы также можете создавать некоторые типы ресурсов в Unity, например контроллер аниматора, аудиомикшер или текстуру рендеринга. Подробнее
    См. в Словарь
    > Импорт пакета > Специальный пакет.
  6. В диалоговом окне файла Импорт пакета перейдите к папке, в которую вы извлекли файл, и выберите его.

  • Обновленные функции в версии 5.5
  • В версии 2018.2 добавлена поддержка использования исходных файлов C++ и статических библиотек в качестве подключаемых модулей для Android
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3