Unity 프로젝트의 C, C++, C# 플러그인에서 함수를 호출할 수 있습니다.
Unity는 Emscripten을 사용하여 C/C++/C# 코드에서 소스를 WebAssembly로 컴파일하므로 C/C++/C# 코드에서 플러그인을 작성하고 Unity C# 스크립트에서 이러한 함수를 호출할 수 있습니다.
대신 JavaScript 플러그인에서 함수를 호출하려면 Unity C# 스크립트에서 JavaScript 함수 호출을 참조하십시오.
Unity 프로젝트가 C/C++/C# 플러그인 코드에서 함수를 호출하도록 하려면 Unity 프로젝트에 플러그인을 임포트해야 합니다.
Assets/JSPlugins 같은 폴더에 JavaScript 플러그인 파일을 넣습니다.
C++(.cpp)를 사용하여 플러그인을 구현하는 경우 네임 맹글링 문제를 피하기 위해 C 링크(extern “C”)에 함수를 선언해야 합니다. 다음은 Unity 프로젝트에서 호출할 수 있는 간단한 함수가 포함된 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);
}
}