Emscripten でライブラリをコンパイルし、Unity でライブラリを使用できます。関数の呼び出しは、プラグインディレクトリから直接 C++ コードを呼び出すよりも、C++ コードをカプセル化したライブラリから行う方が便利な場合があります。具体的には以下のメリットがあります。
Unity プラグインとして使用できる静的ライブラリをコンパイルするには、以下の手順を実行します。
使用している Unity のバージョンに合った Emscripten SDK をダウンロードする必要があります。
対象の Unity バージョンに適したバージョンの Emscripten を見つけるには、Emscripten のウェブネイティブプラグインを参照してください。
Emscripten SDK のダウンロードリンクとインストール方法の詳細については、ダウンロードとインストール (Emscripten) を参照してください。
Emscripten は、gcc または clang コンパイラーの代替として機能します。既存の C/C++ コードがある場合は、C++ プロジェクトで以下の変更を行う必要があります。
詳細については、Emscripten のドキュメントでプロジェクトのコンパイルと実行を参照してください。
Unity プロジェクトに以下の Player 設定 (メニュー: Edit > Project Settings > Player) がある場合は、C/C++ プロジェクトに対していくつかのコンパイラーオプションの追加が必要な場合があります。
| プロパティ | 説明 |
|---|---|
| Enable Exceptions | このプロパティが None に設定されている場合は、コンパイラーオプション “-fno-exceptions” を追加します。 |
| Enable Native C/C++ Multithreading | このプロパティが有効になっている場合は、コンパイラーオプション “-pthread” を指定します。 |
| Enable WebAssembly 2023 | このプロパティが有効になっている場合は、以下のコンパイラーオプションを指定します。
|
静的ライブラリファイルをコンパイルし、Assets/Plugins フォルダー内の Unity プロジェクトにファイルをインポートします。
ノート: Plugins フォルダーがない場合は、自分で作成する必要があります。
Unity C# スクリプトから静的ライブラリ関数を呼び出しことができます。関数の呼び出し方法は、C# スクリプトから C または C++ 関数を呼び出す場合と同じです。例については、Unity C# スクリプトからの C/C++/C# 関数の呼び出しを参照してください。