Unity 프로젝트의 JavaScript 플러그인에서 함수를 호출할 수 있습니다. Unity는 Unity 프로젝트에 JavaScript 코드를 추가할 수 있는 두 가지 JavaScript 플러그인 파일 유형을 지원합니다.
참고: Unity는 현재 .jslib 및 .jspre 파일에서 ES5(ECMAScript 5) 구문을 지원합니다. ES6 구문은 아직 지원되지 않습니다.
대신 C++ 플러그인에서 함수를 호출하려면 Unity C# 스크립트에서 C/C++/C# 함수 호출을 참조하십시오.
프로젝트에서 브라우저 JavaScript를 사용하는 권장 방법은 JavaScript 소스(.jspre 및 .jslib 파일)를 프로젝트에 추가한 다음 Unity C# 스크립트 코드에 해당 함수 또는 라이브러리를 직접 사용하는 것입니다.
Assets/JSPlugins 등의 폴더에 JavaScript 플러그인 파일을 넣습니다.
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 라이브러리를 JavaScript 코드에 포함합니다. Unity 코드를 사용하여 .jspre 파일과 상호 작용할 수는 없지만 .jslib 코드에서 사용할 수 있습니다.
.jspre 파일 유형은 --pre-js Emscripten 옵션을 사용합니다. 자세한 내용은 –pre-js Emscripten 옵션에 대한 Emscripten 기술 자료를 참조하십시오.
빌드 프로세스 중에 Emscripten은 *.framework.js 파일을 생성하고 .jspre 파일의 내용을 *.framework.js 파일의 시작 부분으로 복사합니다. 이 프로세스는 모든 코드를 하나의 파일로 결합하므로 파일 관리가 더 쉬워지고 Emscripten 최적화가 코드에 도움이 되기 때문에 유용합니다.