Version: Unity 6.0 (6000.0)
言語 : 日本語
コード例: Unity における JavaScript と C/C++/C# 関数の呼び出し
Customize error handling

JavaScript プラグインの設定

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 のドキュメントを参照してください。

以下のコードは、いくつかの関数 (HelloHelloString) を定義する最適な構文を持つ .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 の最適化からメリットを得られるため便利です。

追加リソース

コード例: Unity における JavaScript と C/C++/C# 関数の呼び出し
Customize error handling