若要调用和实现原生通用 Windows 平台 (UWP) 插件在 Unity 之外创建的一组代码,用于在 Unity 中创建功能。Unity 中可以使用两种类型的插件:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和原生插件(平台特定的原生代码库)。更多信息
查看 词汇表,您需要了解如何为 Unity 创建原生插件。有关原生插件及其用途的更多信息,请参阅 原生插件一个平台特定的原生代码库,在 Unity 之外创建,用于在 Unity 中使用。允许您访问诸如操作系统调用和第三方代码库之类的功能,否则这些功能将无法在 Unity 中使用。更多信息
查看 词汇表。
IL2CPP 脚本后端一个支持 Unity 中脚本运行的框架。Unity 支持三个不同的脚本后端,具体取决于目标平台:Mono、.NET 和 IL2CPP。但是,通用 Windows 平台仅支持两个:.NET 和 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!"));
}
将组件添加到 游戏对象Unity 场景中的基本对象,可以代表角色、道具、场景、摄像机、航路点等等。游戏对象的功能由附加到它的组件定义。更多信息
查看 词汇表 在您的 场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个唯一的关卡。在每个场景中,您都可以放置环境、障碍物和装饰,本质上是在片段中设计和构建您的游戏。更多信息
查看 词汇表 中,并进入播放模式。控制台将打印 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!"));
}
}