从 Unity C# 脚本调用 C/C++/C# 函数
Call functions from your C or C++ code in your Unity project.
阅读时间2 分钟最后更新于 1 个月前
您可以在 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 链接 () 来声明函数,以免发生名称错用问题。以下代码是一个 C++ 插件示例,其中包含可在 Unity 项目中调用的简单函数。
extern “C”#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); }}