Unity 6.3
0 онлайн 94 гостей 3 в системе
Вход
Разработка платформы Шаг 301 из 387

Компиляция статической библиотеки как плагина Unity

Вы можете компилировать библиотеки с Emscripten и использовать библиотеки в Unity. Может быть более выгодно вызывать функции из библиотек, которые инкапсулируют код C++, а не код C++ непосредственно из каталога плагинов. Преимущества включают:

  • Ваш код легче интегрировать с вашим веб-проектом Unity.
  • Ваш код может работать лучше, чем если вы вызываете функции из кода C++, особенно для более крупных библиотек.
  • Вы можете повторно использовать код в различных проектах.

Как использовать статическую библиотеку в Unity

Чтобы скомпилировать статическую библиотеку, которую можно использовать как плагин Unity:

  1. Скачать Emscripten SDK
  2. Настройка любых существующих сценариев проекта
  3. Обновить параметры компилятора
  4. Скомпилируйте и импортируйте файлы вашей статической библиотеки
  5. Вызов функций вашей статической библиотеки из скриптов C#

1. Загрузить Emscripten SDK

Вы должны загрузить Emscripten SDK, который соответствует вашей версии Unity.

Чтобы найти соответствующую версию Emscripten для вашей версии Unity, см. Веб-плагины для Emscripten.

Ссылки для загрузки и дополнительную информацию об установке Emscripten SDK см. в разделе Загрузить и установить (Emscripten).

2. Настройка существующих скриптов проекта

Emscripten работает как замена компилятора gcc или clang. Если у вас есть существующий код C/C++, вам нужно внести следующие изменения в ваш проект C++:

  • Используйте “emcc” в качестве компилятора C/C++
  • Использовать “emar” как статический компоновщик

Дополнительные сведения см. в документации Emscripten по Компиляция и запуск проектов.

3. Обновить параметры компилятора

Вам может понадобиться добавить некоторые параметры компилятора в ваш проект C/C++, если ваш проект Unity имеет следующие настройки Игрок (меню: Изменить > Project Настройки > Игрок).

Свойство Описание
Включить исключения Если это свойство установлено на Нет, добавьте параметр компилятора “-fno-exceptions”.
Включить многопоточность в нативном C/C++ Если это свойство включено, включите параметр компилятора “-pthread”.
Включить WebAssembly 2023 Если это свойство включено, включите следующие параметры компилятора:
  • “-fwasm-exceptions”
  • “-sSUPPORT_LONGJMP=wasm”
  • “-mbulk-memory”
  • “-mnontrapping-fptoint”
  • “-msimd128”
  • “-msse4.2”

4. Скомпилируйте и импортируйте файлы вашей статической библиотеки

Скомпилируйте файлы своей статической библиотеки, а затем импортируйте их в проект Unity в Assets/Plugins папка.

Примечание: Если у вас нет папки Плагины, вам нужно создать свою собственную.

5. Вызывайте функции вашей статической библиотеки из скриптов C# в Unity

Функции вашей статической библиотеки можно вызывать из скриптов C# в Unity. Вызов выполняется так же, как вызов функции C или C++ из скриптов C#. Пример см. Вызов функций C/C++/C# из скриптов Unity C#.

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