Version: Unity 6.0 (6000.0)
语言 : 中文
从 JavaScript 调用 Unity C# 脚本函数
将静态库编译为 Unity 插件

从 Unity C# 脚本调用 C/C++/C# 函数

您可以在 Unity 项目中从 C、C++ 或 C# 插件调用函数。

Unity 使用 Emscripten 将源代码从 C/C++/C# 代码编译至 WebAssembly,因此可以使用 C/C++/C# 代码编写插件并从 Unity C# 脚本调用这些函数。

要改为从 JavaScript 插件调用函数,请参阅从 Unity C# 脚本调用 JavaScript 函数

将 C/C++/C# 插件导入 Unity 项目

要允许 Unity 项目从 C/C++/C# 插件代码调用函数,需要将插件导入 Unity 项目。

将 JavaScript 插件文件放在任何文件夹中,例如 Assets/JSPlugins

可在 Unity 中使用的 C++ 代码的示例

如果使用 C++ (.cpp) 来实现该插件,则必须确保使用 C 链接 (extern “C”) 来声明函数,以免发生名称错用问题。以下代码是一个 C++ 插件示例,其中包含可在 Unity 项目中调用的简单函数。

#include <stdio.h>

extern "C" void Hello ()
{
    printf("Hello, world!\n");
}

extern "C" int AddNumbers (int x, int y)
{
    return x + y;
}

注意:Unity 使用 Emscripten 2.0.19 版工具链。

在 Unity 项目中使用以下 Unity C# 代码来调用 C++ 函数。

using UnityEngine;
using System.Runtime.InteropServices;

public class NewBehaviourScript : MonoBehaviour {

    [DllImport("__Internal")]
    private static extern void Hello();

    [DllImport("__Internal")]
    private static extern int AddNumbers(int x, int y);

    void Start() {
        Hello();
        
        int result = AddNumbers(5, 7);
        Debug.Log(result);  
    }
}

其他资源

从 JavaScript 调用 Unity C# 脚本函数
将静态库编译为 Unity 插件
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961