Вызов функций C/C++/C# из скриптов Unity C#
Вы можете вызывать функции из ваших плагинов C, C++ или C# в ваших проектах Unity.
Unity использует Emscripten для компиляции ваших исходных текстов в WebAssembly из кода C/C++/C#, так что вы можете писать плагины в коде C/C++/C# и вызывать эти функции из ваших скриптов Unity C#.
Чтобы вызвать функции из ваших плагинов JavaScript, см. Вызов функций JavaScript из скриптов Unity C#.
Импорт плагина C/C++/C# в проект Unity
Чтобы разрешить вашему проекту Unity вызывать функции из вашего кода плагина C/C++/C#, вам нужно импортировать ваш плагин в ваш проект Unity.
Поместите файлы плагина JavaScript в любую папку, например, Assets/JSPlugins.
Пример кода C++, который можно использовать в Unity
Если вы используете 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 C# в вашем проекте Unity для вызова функций 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);
}
}