WebGL Player settings
WebGL のブラウザー間での互換性

WebGL での開発を始めるにあたって

Unity WebGL とは?

The WebGL build option allows Unity to publish content as JavaScript programs which use HTML5/JavaScript, WebAssembly, WebGL rendering API and other web standards to run Unity content in a web browser. To build and test your content for WebGL, choose the WebGL build target in the Build Player window, and click Build & Run.

技術的概要

We use the emscripten compiler toolchain to cross-compile the Unity runtime code (written in C and C++) into WebAssembly (also known as Wasm), which has been designed to be small in size, load-time and memory efficient as well as able to deliver close to native speed execution. For more information about WebAssembly in Unity, check this blog post.

To convert the .NET game code (your C# scripts) into WebAssembly, 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 Wasm.

プラットフォームサポート

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

  • WebAssembly replaced asm.js from 2018.2

  • asm.js removed in 2019.1

WebGL Player settings
WebGL のブラウザー間での互換性