包含此页的版本:
不含此页的版本:
可以从 C、C++ 或 C# 调用函数插件在 Unity 外部创建的一组代码,用于在 Unity 中创建功能。可以在 Unity 中使用两种插件:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和本机插件(特定于平台的本机代码库)。更多信息
请参阅术语表在您的 Unity 项目中。
Unity 使用 Emscripten 将源代码从 C/C++/C# 代码编译为 WebAssembly,因此您可以在 C/C++/C# 代码中编写插件,并从 Unity C# 调用这些函数脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息
请参阅术语表.
若要改为从 JavaScript 插件调用函数,请参阅从 Unity C# 脚本调用 JavaScript 函数。
若要允许 Unity 项目从 C/C++/C# 插件代码调用函数,需要将插件导入 Unity 项目。
将 JavaScript 插件文件放在任何文件夹中,例如Assets/JSPlugins.
如果使用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);
}
}