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