版本:Unity 6 (6000.0)
语言:英语
使用托管 UWP 插件
编写原生 UWP 插件

调用和实现原生 UWP 插件

若要调用和实现原生通用 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# 脚本调用它。

  1. 在您的 Unity 项目中创建一个新的 .cpp 文件,并插入以下原生插件代码

        extern "C" __declspec(dllexport)
        int __stdcall CountLettersInString(wchar_t* str)
        {
            int length = 0;
            while (*str++ != nullptr)
                length++;
            return length;
        }
    
  2. 创建一个新的 C# 脚本,并将其内容替换为以下代码

    [DllImport("MyPlugin.dll")]
        private static extern int CountLettersInString([MarshalAs(UnmanagedType.LPWStr)]string str);
        
        private void Start()
        {
            Debug.Log(CountLettersInString("Hello, native plug-in!"));
        }
    
  3. 将组件添加到 游戏对象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!"));
        }
    }
    

其他资源

使用托管 UWP 插件
编写原生 UWP 插件