Unity プロジェクトで、JavaScript プラグインから関数を呼び出すことができます。Unity は、Unity プロジェクトに JavaScript コードを追加できる 2 種類の JavaScript プラグインファイルをサポートしています。
注:Unity は現在、.jslib ファイルと .jspre ファイルで ECMAScript 5 (ES5) 構文 をサポートしています。ES6 構文 はまだサポートされていません。
C++ プラグインから関数を呼び出す場合は、Unity C# スクリプトから C/C++/C# 関数を呼び出す を参照してください。
プロジェクトでブラウザーの JavaScript を使用するための推奨される方法は、JavaScript ソース (.jspre および .jslib ファイル) をプロジェクトに追加し、次に Unity C# スクリプトコードでそれらの関数またはライブラリを直接使用することです。
JavaScript プラグインファイルを Assets/JSPlugins などの任意のフォルダーに配置します。
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 ファイルの開始部分にコピーします。このプロセスは、すべてのコードが 1 つのファイルにまとめられるためファイルの管理が容易になり、コードが Emscripten の最適化からメリットを得られるため便利です。