Unity 6.3
0 онлайн 72 гостей 3 в системе
Вход
Разработка платформы Шаг 300 из 387

Вызов функций 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);  
    }
}

Дополнительные ресурсы