WebGL ビルド オプションでは、コンテンツを HTML5 技術と WebGL の描画 APIを使った JavaScript プログラムとして公開することができます。これは対応 web ブラウザで実行することができるものです。WebGL 用にコンテンツをビルドおよびテストするには、Build Player ウィンドウでビルドターゲットに WebGL を選択し、Build & Run をクリックしてください。
WebGL で実行するには、すべてのコードが JavaScript で書かれている必要があります。Unity では Emscripten コンパイラーツールチェーンを使用して Unity ランタイムコード (C および C++ で記述されています) を asm.js JavaScript にクロスコンパイルしています。asm.js は最適化可能な JavaScript のサブセットで、asm.js コードを JavaScript エンジンによって非常に効率のよいネイティブコードに AOT コンパイルできるようにするものです。
To convert the .NET game code (your C# scripts) into JavaScript, we use a technology called IL2CPP. IL2CPP takes .NET bytecode and converts it to corresponding C++ source files, which is then compiled using emscripten to convert your scripts to JavaScript.
Unity WebGL コンテンツはほとんどの有名なデスクトップブラウザの最新バージョンでサポートされていますが、各ブラウザの提供する サポートのレベルには差があります。 モバイルデバイスは Unity WebGL にサポートされていません。
プラットフォームの制限があるため、 Unity の全機能が WebGL のビルドで使用できるわけではありません。以下の点は特にその影響を受けます。
スレッドは JavaScript でスレッドサポートがないためサポートされていません。これは Unity の内部的なパフォーマンス向上のためのスレッド使用、スクリプトでのスレッド使用やマネージド DLL にも適用されます。基本的に System.Threading
名前空間の要素は使用できないということです。
WebGL builds cannot be debugged in Visual Studio. See: Debugging and trouble shooting WebGL builds.
ブラウザではセキュリティ保護のため、ネットワーク機能で IP ソケットに直接アクセスすることができません。 WebGL ネットワーキング を参照してください。
WebGL グラフィックス API は OpenGL ES 2.0 や 3.0 と同等で、ある制限があります。詳細は WebGL グラフィックス を参照してください。
WebGL ビルドは Web Audio API を基礎とした Audio のカスタムバックエンドを使用します。このバックエンドは基本的なオーディオ機能のみをサポートしています。 WebGL におけるオーディオの使用 を参照してください。
WebGL は AOT プラットフォームです。そのため、 System.Reflection.Emit
を使用した動的コード生成は使用できません。これは他の IL2CPP プラットフォームである iOS やほとんどのコンソールと同じことです。
2018–03–19 限られた 編集レビュー で修正されたページ
MonoDevelop replaced by Visual Studio from 2018.1