Version: Unity 6.0 (6000.0)
언어 : 한국어
JavaScript에서 Unity C# 스트립트 함수 호출
정적 라이브러리를 Unity 플러그인으로 컴파일

Unity C# 스크립트에서 C/C++/C# 함수 호출

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 프로젝트에 플러그인을 임포트해야 합니다.

Assets/JSPlugins 같은 폴더에 JavaScript 플러그인 파일을 넣습니다.

Unity에서 사용할 수 있는 C++ 코드 예시

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);  
    }
}

추가 리소스

JavaScript에서 Unity C# 스트립트 함수 호출
정적 라이브러리를 Unity 플러그인으로 컴파일
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961