Unity3D :构建适用于桌面平台的插件
推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生
构建适用于桌面平台的插件
桌面平台插件是可以用 C、C++ 和 Objective C 编写的本机代码库。本页介绍适用于 macOS、Windows 和 Linux 的插件。有关更多信息,请参阅本机插件。
macOS plug-ins
您可以将 macOS 增效工具部署为捆绑包,或者,如果您使用的是 IL2CPP 脚本后端,则可以部署松散的C++文件,您可以使用语法调用这些文件。有关松散C++插件的更多信息,请参阅 IL2CPP 的C++源代码插件。[DllImport("__Internal")]
要使用 XCode 创建捆绑包项目,请执行以下操作:
- 打开XCode。
- 选择 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 会自动为目标平台选择正确的插件,并将其包含在播放器中。有关更多信息,请参阅导入和配置插件。
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建模学习工作室整理翻译,转载请注明出处!