Компиляция статической библиотеки как плагина Unity
Вы можете компилировать библиотеки с Emscripten и использовать библиотеки в Unity. Может быть более выгодно вызывать функции из библиотек, которые инкапсулируют код C++, а не код C++ непосредственно из каталога плагинов. Преимущества включают:
- Ваш код легче интегрировать с вашим веб-проектом Unity.
- Ваш код может работать лучше, чем если вы вызываете функции из кода C++, особенно для более крупных библиотек.
- Вы можете повторно использовать код в различных проектах.
Как использовать статическую библиотеку в Unity
Чтобы скомпилировать статическую библиотеку, которую можно использовать как плагин Unity:
- Скачать Emscripten SDK
- Настройка любых существующих сценариев проекта
- Обновить параметры компилятора
- Скомпилируйте и импортируйте файлы вашей статической библиотеки
- Вызов функций вашей статической библиотеки из скриптов 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 | Если это свойство включено, включите следующие параметры компилятора:
|
4. Скомпилируйте и импортируйте файлы вашей статической библиотеки
Скомпилируйте файлы своей статической библиотеки, а затем импортируйте их в проект Unity в Assets/Plugins папка.
Примечание: Если у вас нет папки Плагины, вам нужно создать свою собственную.
5. Вызывайте функции вашей статической библиотеки из скриптов C# в Unity
Функции вашей статической библиотеки можно вызывать из скриптов C# в Unity. Вызов выполняется так же, как вызов функции C или C++ из скриптов C#. Пример см. Вызов функций C/C++/C# из скриптов Unity C#.