要调用并实现原生通用 Windows 平台 (UWP) 插件,您需要了解如何为 Unity 创建原生插件。有关原生插件及其用途的更多信息,请参阅原生插件。
IL2CPP 脚本后端支持用于原生插件的 P/Invoke 机制。这意味着可以直接从 C# 代码中调用原生插件。为此,请指定原生函数原型,然后调用它。
以下示例展示了如何实现原生插件并从 C# 脚本调用它。
在 Unity 项目中创建一个新的 .cpp 文件,并插入以下原生插件代码:
extern "C" __declspec(dllexport)
int __stdcall CountLettersInString(wchar_t* str)
{
int length = 0;
while (*str++ != nullptr)
length++;
return length;
}
创建一个新的 C# 脚本并将其内容替换为以下代码:
[DllImport("MyPlugin.dll")]
private static extern int CountLettersInString([MarshalAs(UnmanagedType.LPWStr)]string str);
private void Start()
{
Debug.Log(CountLettersInString("Hello, native plug-in!"));
}
将该组件添加到场景中的游戏对象并进入运行模式。控制台将打印 22。
using UnityEngine;
public class ExamplePlugin : MonoBehaviour
{
[DllImport("MyPlugin.dll")]
private static extern int CountLettersInString([MarshalAs(UnmanagedType.LPWStr)]string str);
private void Start()
{
Debug.Log(CountLettersInString("Hello, native plug-in!"));
}
}