将静态库编译为 Unity 插件
Call functions from a static library.
阅读时间3 分钟最后更新于 1 个月前
您可以使用 Emscripten 编译库并使用 Unity 中的库。从封装 C++ 代码的库调用函数可能比从插件目录直接调用 C++ 代码更有益。优点包括:
- 代码更容易与 Web Unity 项目集成。
- 与从 C++ 代码调用函数相比,代码性能更好,特别是对于较大的库。
- 可以在各种项目中重用代码。
在 Unity 中使用静态库的步骤
要编译可用作 Unity 插件的静态库,请执行以下操作:
1.下载 Emscripten SDK
必须下载与您的 Unity 版本匹配的 Emscripten SDK。
要查找适用于您的 Unity 版本的 Emscripten 合适版本,请参阅用于 Emscripten 的 Web 原生插件。
有关下载链接以及有关如何安装 Emscripten SDK 的更多信息,请参阅下载和安装 (Emscripten)。
2.配置所有现有项目脚本
Emscripten 可以替代 gcc 或 clang 编译器。如果存在现有 C/C++ 代码,则需要在 C++ 项目中进行以下更改:
- 使用“emcc”作为 C/C++ 编译器
- 使用“emar”作为静态链接器
详情请参阅有关编译和运行项目的 Emscripten 文档。
3.更新编译器选项
如果 Unity 项目具有以下播放器 (Player) 设置,可能需要向 C/C++ 项目添加部分编译器选项(播放器设置菜单:编辑 (Edit) > 项目设置 (Project Settings) > 播放器 (Player))。
属性 | 描述 |
|---|---|
| Enable Exceptions | 如果此属性设置为无 (None),请添加编译器选项“-fno-exceptions”。 |
| Enable Native C/C++ Multithreading | 如果启用此属性,请包含编译器选项“-pthread”。 |
| Enable WebAssembly 2023 | 如果启用此属性,请包含以下编译器选项:
|
4.编译和导入静态库文件
编译静态库文件,然后将文件导入 文件夹中的 Unity 项目。
Assets/Plugins注意:如果没有 Plugins 文件夹,则需要创建自己的文件夹。
5.从 Unity C# 脚本调用静态库函数
您可以从 Unity C# 脚本中调用静态库函数。调用函数的方式与从 C# 脚本调用 C 或 C++ 函数的方式相同。有关示例,请参阅从 Unity C# 脚本调用 C/C++/C# 函数。