Version: 2023.2
Language : English
Build and distribute a WebGL application
Reduce load times with AssetBundles

Build your WebGL application

To create a build for WebGL, go to File > Build Settings from Unity’s main menu. In the Platform list, select WebGL and then click Switch Platform.

When you have configured the Build Settings, choose from one the following options:

  • Build: Builds your application into a Player.
  • Build and Run: Builds your application in a Player, and opens that Player on your target platform.
Build Settings Window
Build Settings Window

The Unity build system for WebGLA JavaScript API that renders 2D and 3D graphics in a web browser. The Unity WebGL build option allows Unity to publish content as JavaScript programs which use HTML5 technologies and the WebGL rendering API to run Unity content in a web browser. More info
See in Glossary
supports the following settings:

Setting Function
Client Browser Type Select the browser client that you want your application to launch at runtime. For example, if you choose System Default, then your application launches the default browser, and removes the Path to Client Browser setting. The available options are:
System Default This is the default setting. Select this option to launch the application in the default browser.
Microsoft Edge Select this option to launch the application in Edge browser.
Mozilla Firefox Select this option to launch the application in Firefox.
Google Chrome Select this option to launch the application in Chrome.
Safari Select this option to launch the application in Safari.
Path to Client Browse§r Specify the path to the browser client that you want your application to launch at runtime. Note: This option is only visible if the Client Browser Type isn’t set to the default browser.
Texture CompressionA method of storing data that reduces the amount of storage space it requires. See Texture Compression, Animation Compression, Audio Compression, Build Compression.
See in Glossary
The texture compression3D Graphics hardware requires Textures to be compressed in specialized formats which are optimized for fast Texture sampling. More info
See in Glossary
format to use for the build. For more information, refer to WebGL texture compression. The available options are:
Use Player Settings This is the default selection. It uses the texture compression format you set in the Player settingsSettings that let you set various player-specific options for the final game built by Unity. More info
See in Glossary
window.
ETC2 Uses ETC2 format, which is widely supported on mobile devices.
ASTC Uses ASTC format, which is widely supported on mobile devices.
DXT Uses DXT format, which is widely supported on desktop devices.
Development BuildA development build includes debug symbols and enables the Profiler. More info
See in Glossary
Enable this setting to include scripting debug symbols and the Profiler in your build. When you enable this, Unity sets the DEVELOPMENT_BUILD scripting define. Use this setting only when you want to test your application because development builds don’t minify content, they’re large to distribute.
Code Optimization Select the optimization mode to use for compiling the WebGL code.
Shorter Build Time This is the default setting. Select this option to generate WebGL code that takes the least amount of time to build.
Runtime Speed Select this option to generate WebGL code that’s optimized for runtime performance.
Disk Size Select this option to generate WebGL code that minimizes build size. For example, reducing WebGL games to the smallest downloadable size is recommended when a mobile browser (Android or iOS) refuses to load the default WebAssembly builds that are big for mobile devices.
Autoconnect Profiler Typically, when enabled, this setting allows you to automatically connect the Unity Profiler to your build. However for WebGL, as you can’t connect the ProfilerA window that helps you to optimize your game. It shows how much time is spent in the various areas of your game. For example, it can report the percentage of time spent rendering, animating, or in your game logic. More info
See in Glossary
to a running build, use this option to connect the content to the Unity Editor instead. This is because the Profiler connection is handled using WebSockets on WebGL, but a web browser only allows outgoing connections from the content. For this setting to be available, you must enable the Development Build option.
Deep Profiling Enable this setting to activate Deep Profiling in the Profiler. This makes the Profiler instrument every function call in your application and returns more detailed profiling data. When you enable Deep Profiling Support, it might slow down script execution. This option is only available if you enable the Development Build option.
Build Use it to build your application.
Build And Run Use it to view the WebGL Player locally. Unity uses a local web server to host your build, and opens it from a localhost URL. Alternatively, you can use a custom local web server with properly configured response headers. For more information, refer to Compressed builds and server configuration.

For changing the settings for Asset Import Overrides, refer to Build Settings.

Build folder structure

When you build your WebGL application, Unity creates a Build folder with the name you specify in the Build Settings window. The Build folder has the following files, where [ExampleBuild] represents the name of the target build folder.

File name Description
[ExampleBuild].loader.js The JavaScript code that the web page needs to load the Unity content.
[ExampleBuild].framework.js JavaScript runtime and plug-insA set of code created outside of Unity that creates functionality in Unity. There are two kinds of plug-ins you can use in Unity: Managed plug-ins (managed .NET assemblies created with tools like Visual Studio) and Native plug-ins (platform-specific native code libraries). More info
See in Glossary
.
[ExampleBuild].wasm WebAssembly binary.
[ExampleBuild].mem A binary image to initialize the heap memory for your Player. Unity generates this file for multi-threaded WebAssembly builds only.
[ExampleBuild].data Asset data and ScenesA Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info
See in Glossary
.
[ExampleBuild].symbols.json Debug symbol names necessary to demangle an error stack trace. This file is only generated for Release builds when you enable the Debug Symbols option (File > Build Settings > Player Settings.)
[ExampleBuild].jpg A background image, which displays while the build is loading. This file is only generated when a Background Image is available in the Player Settings (File > Build Settings > Player Settings > Splash Image). For more information, refer to Splash Screen.

If you enable a Compression Method for your build, Unity identifies the extension that corresponds with the compression method and adds this extension to the names of the files inside the Build sub folder. If you enable Decompression Fallback, Unity appends the extension .unityweb to the build file names. Otherwise, Unity appends the extension .gz for the Gzip compression method, or .br for the Brotli compression method. For more information, refer to Compressed builds and server configuration.

If you enable Name Files As Hashes in the Player Settings, Unity uses the hash of the file content instead of the default file name. This applies to each file in the build folder. This option allows you to upload updated versions of the game builds into the same folder on the server, and only upload the files which have changed between build iterations.

Note: Opening a Player directly from the file system might not work in some browsers. This is due to security restrictions applied to local file URLs.

Enable exceptions

Use Enable Exceptions to specify how to handle unexpected code behavior (also known as errors) at runtime.

  1. To access Enable Exceptions, go to the WebGL Player Settings > Publishing Settings section.

  2. In the Enable Exceptions option, choose from the following options:

    • None: Select this if you don’t need any exception support. This gives the best performance and smallest builds. With this option, any exception thrown causes your content to stop with an error.

    • Explicitly Thrown Exceptions Only (default): Select this to capture exceptions which are explicitly specified from a throw statement in your scriptsA piece of code that allows you to create your own Components, trigger game events, modify Component properties over time and respond to user input in any way you like. More info
      See in Glossary
      and to also to make sure finally blocks are called. Note that selecting this option makes the generated JavaScript code from your scripts longer and slower; This might only be an issue if scripts are the main bottleneck in your project.

    • Full Without Stacktrace: Select this option to capture:

      • Exceptions which are explicitly specified from throw statements in your scripts (the same as in the Explicitly Thrown Exceptions Only option)
      • Null References
      • Out of Bounds Array accesses
    • Full With Stacktrace: This option is similar to the earlier option, but it also captures Stack traces. Unity generates these exceptions by embedding checks for them in the code, so this option decreases performance and increases browser memory usage. Only use this for debugging, and always test in a 64-bit browser.

Build and distribute a WebGL application
Reduce load times with AssetBundles
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961