This page details the Player Settings specific to WebGL. A description of the general Player Settings can be found here.
Property: | Function: |
---|---|
Rendering | |
Rendering Path | The rendering path enabled for the game. |
Auto Graphics API | Uncheck this if you want to manually select which graphics API is used. When checked, Unity includes WebGL2.0, with WebGL1.0 as a fallback for browsers that don’t support it. When unchecked, you can manually pick and reorder the graphics APIs. |
Static Batching | Check to enable static batching. |
Dynamic Batching | Check to enable dynamic batching. |
Configuration | |
Scripting Runtime Version | Choose which .NET runtime to use in your project. For more details, see Microsoft’s .NET documentation. |
.NET 3.5 Equivalent | A .NET runtime which implements the .NET 3.5 API. This is the default scripting runtime. |
.NET 4.x Equivalent | A .NET runtime which implements the .NET 4 API. This API is newer than .NET 3.5, and as such, it offers access to more APIs, is compatible with more external libraries, and supports C# 6. |
Scripting Backend | Scripting backend is grayed out because there is only one scripting backend on WebGL. |
Disable HW Statistics | When this is unchecked, the application sends information about the hardware to Unity (See hwstats page for more details). |
Scripting Define Symbols | Custom compilation flags (see the platform dependent compilation page for details). |
Allow ‘unsafe’ Code | Enables support for compiling ‘unsafe’ C# code in a pre-defined assembly (for example, Assembly-CSharp.dll). For Assembly Definition Files (.asmdef), click on one of your .asmdef files and enable the option in the Inspector window that appears. |
Optimization | |
Api Compatibility Level | Specifies active .NET API profile. See below. |
.Net 2.0 | .Net 2.0 libraries. Maximum .net compatibility, biggest file sizes |
.Net 2.0 Subset | Subset of full .net compatibility, smaller file sizes |
Prebake Collision Meshes | Enable collision mesh baking during the build. |
Preload Shaders | Enable shader preloading. |
Preload Assets | Enable asset preloading. Specify the size of assets to preload. |
Strip Engine Code | Enable code stripping for WebGL. |
Vertex Compression | |
Optimize Mesh Data | Remove any data from meshes that is not required by the material applied to them (tangents, normals, colors, UV). |
You can choose your mono API compatibility level for all targets. Sometimes a 3rd party .net dll will use things that are outside of the .net compatibility level that you would like to use. In order to understand what is going on in such cases, and how to best fix it, get “Reflector” on windows.
Property: | Function: |
---|---|
Memory Size | Sets the memory available to the WebGL runtime, given in megabytes. You should choose this value carefully: if it is too low, you will get out-of-memory errors because your loaded content and scenes won’t fit into the available memory. However, if you request too much memory then some browser/platform combinations might not be able to provide it and consequently fail to load the player. See here for details. |
Enable Exceptions | Enables exceptions support which allows you to specify how unexpected code behavior (generally considered errors) is handled at run time. There are four options: None, Explicitly Thrown Exceptions Only, Full Without Stacktrace and Full With Stacktrace. See the Building and running a WebGL project page for details. |
Compression Format | Release build files compression format: gzip, brotli or none. Note that this option does not affect Development builds. |
Name Files As Hashes | Use MD5 hash of the uncompressed file contents as a filename for each file in the build. |
Data caching | Enable this to automatically cache your contents asset data on the users machine so it will not have to be re-downloaded on subsequent runs (unless the contents have changed). Caching is implemented using the IndexedDB API provided by the browser. Some browsers may implement restrictions around this, such as asking the user for permission to cache data over a specific size. |
Debug Symbols | Preserve debug symbols and perform demangling of the stack trace when an error occurs. For release builds all the debug information is stored in a separate file which is downloaded from the server on demand when an error occurs. Development builds always have demangling support embedded in the main module and therefore are not affected by this option. |
Linker Target | Specify which build type to generate. asm.js is widely supported across browsers, while WebAssembly is a new and efficient format for the web. Selecting Both generates WebAssembly and asm.js formats. Then at run time, WebAssembly is used if it’s supported by the browser, otherwise it will fall back to asm.js. |
Further information about WebGL Publishing Settings can be found in the WebGL Building and Running page.
2018–03–20 Page amended with no editorial review
Publishing settings updated in Unity 2017.3 NewIn20173
Allow ‘unsafe’ code checkbox added in Unity 2018.1
.NET 4.x runtime added in 2018.1
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?
Is something described here not working as you expect it to? It might be a Known Issue. Please check with the Issue Tracker at issuetracker.unity3d.com.
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:
Thanks for helping to make the Unity documentation better!