Version: 6000.3
语言: 中文
本机插件 API
用于图形和渲染的本机插件 API

原生插件 API 简介

除了用于编写托管代码的公共 C# API 之外,Unity 还提供了一个较小的本机接口,您可以使用它从本机访问 Unity 编辑器和引擎功能插件在 Unity 外部创建的一组代码,用于在 Unity 中创建功能。可以在 Unity 中使用两种插件:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和本机插件(特定于平台的本机代码库)。更多信息
请参阅术语表
.

插件 API 文件夹

本机接口是一组与 C 或 C++ 兼容的头文件 (.h) 文件,作为编辑器安装的一部分包含。这些文件位于PluginAPI文件夹,您可以在以下位置找到它:

  • 窗户<UnityInstallPath>\Editor\Data\PluginAPI
  • macOS:右键单击 Unity 应用程序,然后选择“显示包内容”。标头位于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 事件,插件必须导出UnityPluginLoadUnityPluginUnload功能。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>();
}

其他资源

本机插件 API
用于图形和渲染的本机插件 API