Version: Unity 6.0 (6000.0)
언어 : 한국어
코드 예시: Unity에서 JavaScript 및 C/C++/C# 함수 호출
Customize error handling

JavaScript 플러그인 설정

Unity 프로젝트의 JavaScript 플러그인에서 함수를 호출할 수 있습니다. Unity는 Unity 프로젝트에 JavaScript 코드를 추가할 수 있는 두 가지 JavaScript 플러그인 파일 유형을 지원합니다.

  • .jslib
  • .jspre

참고: Unity는 현재 .jslib 및 .jspre 파일에서 ES5(ECMAScript 5) 구문을 지원합니다. ES6 구문은 아직 지원되지 않습니다.

대신 C++ 플러그인에서 함수를 호출하려면 Unity C# 스크립트에서 C/C++/C# 함수 호출을 참조하십시오.

Unity 프로젝트에 JavaScript 파일 임포트

프로젝트에서 브라우저 JavaScript를 사용하는 권장 방법은 JavaScript 소스(.jspre 및 .jslib 파일)를 프로젝트에 추가한 다음 Unity C# 스크립트 코드에 해당 함수 또는 라이브러리를 직접 사용하는 것입니다.

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

.jslib 파일 유형에서 함수 호출

Unity C# 또는 네이티브 스크립트의 .jslib 플러그인 파일에서 함수를 호출할 수 있습니다.

.jslib 유형의 파일은 --js-library Emscripten 모듈을 사용합니다. 자세한 내용은 –js-library Emscripten 옵션에 대한 Emscripten 기술 자료를 참조하십시오.

다음 코드는 일부 함수(Hello, HelloString)를 정의하는 적합한 구문이 있는 .jslib 플러그인 파일의 예를 보여 줍니다.

mergeInto(LibraryManager.library, {

  Hello: function () {
    window.alert("Hello, world!");
  },

  HelloString: function (str) {
    window.alert(UTF8ToString(str));
  },
});

그런 다음 Unity C# 코드에서 다음 함수를 호출할 수 있습니다.

using UnityEngine;
using System.Runtime.InteropServices;

public class NewBehaviourScript : MonoBehaviour {

    [DllImport("__Internal")]
    private static extern void Hello();

    [DllImport("__Internal")]
    private static extern void HelloString(string str);

    void Start() {
        Hello();
        HelloString("This is a string.");
    }
}

Unity C# 및 JavaScript 함수 간의 코드 상호 작용에 대한 전체 예시는 코드 예시: Unity에서 JavaScript 및 C/C++/C# 함수 호출을 참조하십시오.

Unity C#과 JavaScript 간의 상호 작용에 대한 자세한 내용은 Unity C# 스크립트에서 JavaScript 함수 호출을 참조하십시오.

.jspre 파일 유형으로 JavaScript 라이브러리 포함

.jspre 플러그인 파일 유형을 사용하여 기존 JavaScript 라이브러리를 JavaScript 코드에 포함합니다. Unity 코드를 사용하여 .jspre 파일과 상호 작용할 수는 없지만 .jslib 코드에서 사용할 수 있습니다.

.jspre 파일 유형은 --pre-js Emscripten 옵션을 사용합니다. 자세한 내용은 –pre-js Emscripten 옵션에 대한 Emscripten 기술 자료를 참조하십시오.

빌드 프로세스 중에 Emscripten은 *.framework.js 파일을 생성하고 .jspre 파일의 내용을 *.framework.js 파일의 시작 부분으로 복사합니다. 이 프로세스는 모든 코드를 하나의 파일로 결합하므로 파일 관리가 더 쉬워지고 Emscripten 최적화가 코드에 도움이 되기 때문에 유용합니다.

추가 리소스

코드 예시: Unity에서 JavaScript 및 C/C++/C# 함수 호출
Customize error handling