Unity3D :构建适用于桌面平台的插件

推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生

构建适用于桌面平台的插件

桌面平台插件是可以用 C、C++ 和 Objective C 编写的本机代码库。本页介绍适用于 macOS、Windows 和 Linux 的插件。有关更多信息,请参阅本机插件。

macOS plug-ins

您可以将 macOS 增效工具部署为捆绑包,或者,如果您使用的是 IL2CPP 脚本后端,则可以部署松散的C++文件,您可以使用语法调用这些文件。有关松散C++插件的更多信息,请参阅 IL2CPP 的C++源代码插件。[DllImport("__Internal")]

要使用 XCode 创建捆绑包项目,请执行以下操作:

  1. 打开XCode。
  2. 选择 File > New > Project > macOS > Framework & Library > Bundle

有关使用 XCode 的更多信息,请参阅 Apple 关于 XCode 的文档。

要求

  • 您可以将插件构建为与 64 位体系结构兼容的通用二进制文件。或者,您可以提供单独的 dylib 文件。
  • 如果您使用 C++ (.cpp) 或 Objective-C (.mm) 来实现插件,请使用 C 链接声明函数以避免名称重整问题:
extern "C"
{
  float ExamplePluginFunction ();
}

Windows plug-ins

Windows 上的插件要么是具有导出函数的.dll文件,要么是松散的C++文件(如果您使用的是 IL2CPP)。您可以使用大多数可以创建.dll文件的语言和开发环境来创建插件。必须使用 C 链接声明任何C++函数,以避免名称重整问题。

Linux plug-ins

Linux 上的插件是带有导出函数的 .so 文件。尽管这些库通常采用 C 或C++,但您可以使用任何语言。必须使用 C 链接声明任何C++函数,以避免名称重整问题。

管理 Unity 中的插件

在 Unity 中,插件检查器管理您的插件。若要访问插件检查器,请在“项目”窗口中选择一个插件文件。对于独立平台,您可以选择与库兼容的 CPU 架构。对于跨平台插件,您必须包含 .bundle 文件(适用于 macOS)、.dll 文件(适用于 Windows)和 .so 文件(适用于 Linux)。Unity 会自动为目标平台选择正确的插件,并将其包含在播放器中。有关更多信息,请参阅导入和配置插件。

插件检查器
Plugin Inspector

Invoking your plug-in from a C# script

将构建的插件放在 Unity 项目中的“资源”文件夹或相应的特定于体系结构的子目录中。然后,当您从 C# 脚本调用它时,Unity 会按名称查找它。例如:[DllImport ("PluginName")] private static extern float ExamplePluginFunction ();

注意:不应包含库前缀或文件扩展名(例如,插件文件的实际名称在 Windows 上是 PluginName.dll在 Linux 上是 libPluginName.so)。PluginName

插件示例

您可以下载并使用这些项目来了解如何在 Unity 中实现插件。

  • 最简单的插件示例:本项目实现基本操作(例如,打印一个数字、打印一个字符串、添加两个浮点数和添加两个整数)。此项目包括 Windows、macOS 和 Linux 项目文件。
  • 原生渲染器插件:这是一个低级渲染插件,在所有常规渲染完成后C++代码渲染一个旋转三角形,并使用 Texture.GetNativeTexturePtr 从C++代码填充程序纹理来访问它。该项目包括Windows,UWP,macOS,WebGL和Android文件。

3D建模学习工作室整理翻译,转载请注明出处!

上一篇:Unity3D :原生插件 (mvrlink.com)

下一篇:Unity3D :低级本机插件接口 (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号