你可以使用 Emscripten 编译库,并在 Unity 中使用这些库。调用封装 C++ 代码的库中的函数可能比直接从 插件在 Unity 外部创建的代码集,用于在 Unity 中创建功能。可在 Unity 中使用的插件有两种类型:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和本机插件(特定于平台的本机代码库)。 更多信息
请参见 词汇表 目录中调用 C++ 代码更有益处。这样做的好处包括:
若要编译一个可作为 Unity 插件使用的静态库,请
你必须下载与你的 Unity 版本匹配的 Emscripten SDK。
若要找到适用于你的 Unity 版本的正确 Emscripten 版本,请参阅 适用于 Emscripten 的 Web 本机插件。
若要获取下载链接和有关如何安装 Emscripten SDK 的更多信息,请参阅 下载并安装(Emscripten)。
Emscripten 可作为 gcc 或 clang 编译器的替代。如果你有现有的 C/C++ 代码,你需要对你的 C++ 项目进行以下更改
更多信息,请参阅 Emscripten 文档中的 编译和运行项目。
如果 Unity 项目具有以下 **Player** 设置(菜单:**编辑** > **项目设置** > **Player**),你可能需要在你的 C/C++ 项目中添加一些编译器选项。
属性 | 说明 |
---|---|
启用异常 | 如果此属性设置为 **无**,请添加编译器选项“-fno-exceptions”。 |
启用 Native C/C++ 多线程 | 如果启用了此属性,请添加编译器选项“-pthread”。 |
启用 WebAssembly 2023 | 如果启用了此属性,请添加以下编译器选项
|
编译静态库文件,然后将文件导入到 Assets/Plugins
文件夹中的 Unity 项目中。
注意:如果你没有 **插件** 文件夹,需要创建自己的文件夹。
你可以从 Unity C# 脚本允许你创建自己的组件、触发游戏事件、随时修改组件属性以及响应用户输入的代码片段。 了解更多信息
请在 术语表 中查看 中调用静态库函数。调用的方式与从 C# 脚本中调用 C 或 C++ 函数相同。有关示例,请参阅 从 Unity C# 脚本中调用 C/C++/C# 函数。