WebGL ビルド オプションでは、コンテンツを HTML5/JavaScript、WebAssembly、WebGL レンダリング API とその他のウェブ標準技術を使う JavaScript プログラムとして、ウェブブラウザーで公開することができます。WebGL 用にコンテンツをビルドしテストするには、Build Player ウィンドウでビルドターゲットに WebGL を選択し、Build & Run をクリックしてください。
emscripten コンパイラーツールチェーンを使用して、Unity のランタイムコード (C と C++で記述) を WebAssembly (Wasm とも呼ばれている) にクロスコンパイルしています。Wasm は、サイズが小さく、ロードタイムとメモリの効率が良く、ネイティブに近い速度で実行できるように設計されています。Unity での WebAssembly についての詳細は、こちらの ブログ を参照してください。
.NET のゲームコード (C# のスクリプト) を WebAssembly に変換します。IL2CPP と呼ばれる技術を使用します。IL2CPP は、.NET のバイトコードを受け取り、対応する C++ のソースファイルに変換し、emscripten を使ってコンパイルし、スクリプトを Wasm に変換します。
Unity WebGL コンテンツはほとんどの有名なデスクトップブラウザの最新バージョンでサポートされていますが、各ブラウザの提供する サポートのレベルには差があります。 モバイルデバイスは Unity WebGL にサポートされていません。
プラットフォームの制限があるため、 Unity の全機能が WebGL のビルドで使用できるわけではありません。以下の点は特にその影響を受けます。
スレッドは JavaScript でスレッドサポートがないためサポートされていません。これは Unity の内部的なパフォーマンス向上のためのスレッド使用、スクリプトでのスレッド使用やマネージド DLL にも適用されます。基本的に System.Threading
名前空間の要素は使用できないということです。
WebGL ビルドは Visual Studio でデバッグできません。WebGLビルドのデバッグとトラブルシューティング を参照してください。
ブラウザではセキュリティ保護のため、ネットワーク機能で 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 は 2018.1 以降 Visual Studio に置き換えられました
2018.2 から WebAssembly を asm.js に置き換えました。
2019.1 で削除された asm.js
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.