包含此页的版本:
不含此页的版本:
描述了插件在 Unity 外部创建的一组代码,用于在 Unity 中创建功能。可以在 Unity 中使用两种插件:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和本机插件(特定于平台的本机代码库)。更多信息
请参阅术语表对于使用中间语言到 C++ (./scripting-backends-il2cpp) 的 macOS 应用程序。
IL2CPP 是一个完全受支持的脚本后端,在为 macOS Player 构建项目时,您可以将其用作 Mono 的替代品。
当您使用 IL2CPP 构建项目时,Unity 会将中间语言 (IL) 代码从脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息
请参阅术语表在创建本机二进制文件之前,将程序集转换为 C++。指IL2CPP Unity 开发的脚本后端,在为某些平台构建项目时,可以将其用作 Mono 的替代方案。更多信息
请参阅术语表了解更多信息。
使用 IL2CPP 脚本后端时,您可以将C++ (.cpp) 代码文件直接添加到 Unity 项目中。这些 C++ 文件充当检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
请参阅术语表.如果将 C++ 文件配置为与 macOS 播放器兼容,Unity 会将它们与从托管程序集生成的 C++ 代码一起编译。有关插件配置的更多信息,请参阅导入和配置插件。
生成的 C++ 代码将函数链接在一起,无需单独的动态链接库 (DLL)。不要使用 DLL 名称,而是使用"__Internal"关键字,使 C++ 链接器负责解析函数,而不是在运行时加载它们。例如:
[DllImport("__Internal")]
private static extern int
CountLettersInString([MarshalAs(UnmanagedType.LPWStr)]string str);
您可以在NativeFunctions.cpp中定义此类函数,如下所示:
extern "C" __declspec(dllexport) int __stdcall CountLettersInString(wchar_t* str)
{
int length = 0;
while (*str++ != nullptr)
length++;
return length;
}
当链接器解析函数调用时,托管端函数声明中的错误会导致链接器错误,而不是运行时错误。这意味着在运行时不需要动态加载,直接从 C# 调用函数。这减少了P/Invoke叫。