ドキュメント

Unity Engine

Unity Engine

JavaScript プラグインの設定

Create a JavaScript plug-in that your Unity project can interact with.
読み終わるまでの所要時間 5 分最終更新 1ヶ月前

Unity プロジェクトで、JavaScript プラグインから関数を呼び出すことができます。Unity は、Unity プロジェクトに JavaScript コードを追加できる 2 種類の JavaScript プラグインファイルをサポートしています。
  • .jslib
  • .jspre
注:Unity は現在、.jslib ファイルと .jspre ファイルで ECMAScript 5 (ES5) 構文 をサポートしています。ES6 構文 はまだサポートされていません。
C++ プラグインから関数を呼び出す場合は、Unity C# スクリプトから C/C++/C# 関数を呼び出す を参照してください。

Unity プロジェクトへの JavaScript ファイルのインポート

プロジェクトでブラウザーの JavaScript を使用するための推奨される方法は、JavaScript ソース (.jspre および .jslib ファイル) をプロジェクトに追加し、次に Unity C# スクリプトコードでそれらの関数またはライブラリを直接使用することです。
JavaScript プラグインファイルを
Assets/JSPlugins
などの任意のフォルダーに配置します。

.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
ファイルの開始部分にコピーします。このプロセスは、すべてのコードが 1 つのファイルにまとめられるためファイルの管理が容易になり、コードが Emscripten の最適化からメリットを得られるため便利です。

追加リソース