包含此页的版本:
不含此页的版本:
除了用于编写托管代码的公共 C# API 之外,Unity 还提供了一个较小的本机接口,您可以使用它从本机访问 Unity 编辑器和引擎功能插件在 Unity 外部创建的一组代码,用于在 Unity 中创建功能。可以在 Unity 中使用两种插件:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和本机插件(特定于平台的本机代码库)。更多信息
请参阅术语表.
本机接口是一组与 C 或 C++ 兼容的头文件 (.h) 文件,作为编辑器安装的一部分包含。这些文件位于PluginAPI文件夹,您可以在以下位置找到它:
<UnityInstallPath>\Editor\Data\PluginAPI
Contents\PluginAPI
每个头文件都包含其他文档,其中有代码注释。有关开始实现本机接口的详细信息,请参阅主头文件中的代码注释IUnityInterface.h.
所有统一本机插件在 Unity 外部创建的用于 Unity 的特定于平台的本机代码库。允许您访问 OS 调用和第三方代码库等功能,否则这些功能将无法用于 Unity。更多信息
请参阅术语表API 头文件与用 C++ 编写的插件兼容,但只有部分与用 C 编写的插件兼容。
与 C 不兼容的文件报告错误"This file cannot be compiled in a C environment"如果您尝试将它们编译为 C。您还可以在头文件源中找到相应的检查:
#ifndef __cplusplus
#error "This file cannot be compiled in a C environment"
#endif
要处理主要的 Unity 事件,插件必须导出UnityPluginLoad和UnityPluginUnload功能。IUnityInterfaces使插件能够访问这些功能,您可以在IUnityInterface.h在插件 API 中。
以下示例使用IUnityInterfaces加载IUnityGraphics接口到指针。这是一种标准方法,您可以重复从本机插件 API 加载其他接口:
#include "IUnityInterface.h"
#include "IUnityGraphics.h"
// Unity plugin load event
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API
UnityPluginLoad(IUnityInterfaces* unityInterfaces)
{
IUnityGraphics* graphics = unityInterfaces->Get<IUnityGraphics>();
}