Version: 2021.3
Language : English
Trademarks and terms of use
Packages and feature sets

New in Unity 2021 LTS

Long-term Support (LTS)

Unity 2021.3 is an LTS release. Unity 2021.3 contains features released in 2021.1 and 2021.2. LTS releases are supported for two years for Personal and Pro plan subscribers. Enterprise and Industry plan subscribers receive extended LTS support for three years. Refer to Long Term Support (LTS) + Tech Stream to learn more.

Release Notes

To find out more about the new features, changes, and improvements to Unity 2021 releases, refer to:

To find the release notes for other releases, refer to the Unity download archive.

Upgrade guides

If you are upgrading existing projects from an earlier version of Unity, read the Upgrade Guides for information about how your project might be affected. Here are the LTS specific upgrade guides:

What’s new

See what’s changed in Unity 2021 LTS since 2020 LTS and view the documentation for the affected areas.

What’s New page outline

Editor and workflow

2D game development quickstart guide

The 2D game development quickstart guide has been released, which provides a workflow for developing a 2D game in Unity. This quickstart guide helps you decide what game perspective and art style you want your game to have, set up your Unity project, and create a 2D game.

3D game development quickstart guide

The 3D game development quickstart guide has been released, which provides a workflow for developing a 3D game in Unity. This quickstart guide helps you set up your Unity project, and create a 3D game.

Overlays in Scene view

The SceneA 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
view now contains overlays for artist-driven context-based tools and customizable floating toolbarsA row of buttons and basic controls at the top of the Unity Editor that allows you to interact with the Editor in various ways (e.g. scaling, translation). More info
See in Glossary
for Scene Tools (Move, rotate, scale, etc.), Component tools, Orientation, and Search. This system is extensible, so you can add custom tools and toolbars as overlays.

Quality of life and efficiency improvements

  • The Transform component can now constrain scale proportions.
  • Project assets have copy/cut/paste support. If you drag multiple objects from the Hierarchy into the Project windowA window that shows the contents of your Assets folder (Project tab) More info
    See in Glossary
    , it now produces multiple PrefabsAn asset type that allows you to store a GameObject complete with components and properties. The prefab acts as a template from which you can create new object instances in the scene. More info
    See in Glossary
    .
  • You can preview complex Prefabs faster in the InspectorA Unity window that displays information about the currently selected GameObject, asset or project settings, allowing you to inspect and edit the values. More info
    See in Glossary
    , and “revert to Prefab” works with multiselection.
  • To maximize the Game view, you can now choose from the following options: Play Focused; Play Maximized; Play Unfocused.
  • If you click on a material slot in the Renderer component, that material is highlighted in the Scene viewAn interactive view into the world you are creating. You use the Scene View to select and position scenery, characters, cameras, lights, and all other types of Game Object. More info
    See in Glossary
    .
  • The number field math expressions in the Inspector are more accurate. For example, sqrt(9) or *=2 that makes the value 2x larger across an entire selection. ToString() on various C# math types (for example Vector3) now prints two decimal digits by default.

Visual scripting improvements

When you open an empty graph editor window, this prompts guidance on how to create or load graphs. Icons are now more consistent with the Unity Editor. “Unit” is now named “Node,” and “Super Unit” is now “Sub-Graph”. New nodes are available to simplify access to Script graphs and State graphs.

Table view in Search

Use the new Table View to compare search results across multiple properties and sort items by name or description. You can now use Search to get more relevant items when you select a reference via the Asset Picker.

Feature sets

The Package Manager now contains feature sets which group together packages required for specific outcomes, like 2D game development or creating for mobile.

Apple silicon Editor

The Apple silicon Editor provides M1 Mac users with a native Unity Editor experience.

Improved asset workflows

Import Activity window

The Import Activity window shows what happens throughout the import process, for example, which assets you have imported/reimported, when it happened, and how long it took.

Faster asset import speeds

The Asset import speed is faster due to accelerated texture imports, meshThe main graphics primitive of Unity. Meshes make up a large part of your 3D worlds. Unity supports triangulated or Quadrangulated polygon meshes. Nurbs, Nurms, Subdiv surfaces must be converted to polygons. More info
See in Glossary
import optimizations, and new importing options, for example, the Force Fast Compressor asset import override.

Optimized build process

This release includes Scriptable Build Pipeline optimizations and Build Cache performance improvements to optimize the build process. The player code build pipeline for Windows, macOS, Android, and 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
now supports incremental C# script compilation. This will enable quicker build times when making small changes to your projects.

Faster build times with IL2CPP Code Generation

The IL2CPPA Unity-developed scripting back-end which you can use as an alternative to Mono when building projects for some platforms. More info
See in Glossary
Code Generation option in the Build Settings menu generates up to 50% less code. This enables faster IL2CPP build times and smaller executable files.

Programming workflows

Programming workflows now have performance improvements, for example:

  • More aggressive inlining of functions improve the C# math performance.
  • Async Read manager API can now be called from burst jobs, including APIs for async open, close, and cancel.
  • Asset garbage collection code is now multithreaded.
  • GUID hash generation is now 6x faster for common data patterns.

This release features improvements for the profiling tool set, for example:

  • There is greater 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
    connectivity with tethered Android devices.
  • The connection drop-down menu is now in a tree view that groups player connections into local, remote, and direct connection categories.
  • There is better platform support for obtaining GPU timings of URP/HDRP code.
  • New APIs now pass arbitrary data to the Profiler and visualize it as a custom profiler module. This enables exposure of performance metrics relevant to a game or any other systems in the Profiler window, and alternative visualizations of Profiler data to facilitate additional analysis.
  • Memory module view in the Profiler Window has greater functionality.

Multiple version support with Version Defines

You can now use Version Defines to include the latest API features and provide backwards compatibility for older versions of Unity and the API, all within a single code base.

Build precise time-based functionality with timeAsDouble

Time.timeAsDouble has introduced various AsDouble properties, which let you use double precision time in your project. This is especially useful for creators building long-running applications, such as dedicated game servers.

The Code Coverage package is out of preview

Use Unity’s Code Coverage package with Test RunnerThe Test Framework package (formerly called the Test Runner) is a Unity tool that tests your code in both Edit mode and Play mode, and also on target platforms such as Standalone, Android, or iOS. More info
See in Glossary
to check for test coverage of your project’s code, including detailed HTML formatted reporting to find areas that are being missed by your current test suite.

Comprehensive memory profiling now included

The Memory Profiler package has been updated to ensure that all relevant data is reported for managed data types, including multi-dimensional arrays. Additionally, improvements have been made to texture and mesh memory reporting.

Unity now includes multiple Player profiling support

You can now run multiple Player instances on one machine, and connect Unity Profiler to a specific instance to get deep insight in how it’s performing, making you more productive with less hardware. Watch the Profile multiple players in 2021.1 video on YouTube to see it in action.

Test different platforms with Device Simulator

Device Simulator is now installed as part of the main Unity installation and you no longer need to add it as a package. Use Device Simulator to view how your game would appear on mobile devices.

Create logic with visual scripting

Visual scripting is now included as a core feature, built directly into Unity. You can use this to create logic with visual, drag-and-drop graphs to supplement your code for faster prototyping and iteration. Visual scripting is also a great way to make existing 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
more accessible to create tools for use by non-programming team members.

Platforms

Screen APIs for display settings

New screen APIS to provide greater control over the display settings in games, enabling players with multiple monitors to select which monitor the game window should appear on:

  • Screen.mainWindowPosition
  • Screen.mainWindowDisplayInfo
  • Screen.GetDisplayLayout()
  • Screen.MoveMainWindowTo()

Support for Chrome OS within the Android Development environment

Unity now supports x86, x86–64, and Arm architectures for Chrome OS devices. Unity supports built-in input emulation but you can create your own input controls to take advantage of mouse and keyboard setups.

Android App Bundles

Unity now provides direct support for Android’s new expansion file format, Android App Bundle (AAB) for asset building. Using AAB, you can meet the Google Asset Delivery requirements to publish any new apps to Google Play.

Startup Boost in Adaptive Performance

Adaptive Performance can now prioritize CPU/GPU resources to help launch applications more quickly. It also adds integration with the Unity Profiler so you can profile Adaptive Performance more efficiently in regular workflows.

Android thread configuration

Android thread configuration gives your fine-grained control over how your applications run to maximize their performance on certain hardware. It now includes options for whether to optimize an application for energy-efficiency or high performance.

WebGL improvements

WebGL improvements include:

  • Emscripten 2.0.19, which gives faster build times and a smaller WebAssembly output for the WebGL target.
  • Features for future support of the WebGL Player in mobile web browsers (iOS and Android), including gyroscope, accelerometer, gravity sensor, and attitude sensor values.
  • Forward and rear-facing web camerasA component which creates an image of a particular viewpoint in your scene. The output is either drawn to the screen or captured as a texture. More info
    See in Glossary
    .
  • You can now lock screen orientation for full-screen projects on Android browsers.

Compressed audio

Compressed audio support reduces the amount of memory the WebGL player uses in the browser for long-running background music and large audio files.

Compressed texture formats

You can now choose ASTC or ETC/ETC2 compressed texture formatsA file format for handling textures during real-time rendering by 3D graphics hardware, such as a graphics card or mobile device. More info
See in Glossary
to target mobile web browsers, as well as BC4/5/6/7 texture formats for higher quality compressed textures on desktop browsers.

UDP support in Play Mode

You can now test your game’s IAP purchase and consume methods for UDP in the Editor Play mode. The Distribution Portal includes a Getting Started guide with instructions and code samples to help you implement UDP.

Cinematics

Sprite Editor

Slicing options now let you slice spriteA 2D graphic objects. If you are used to working in 3D, Sprites are essentially just standard textures but there are special techniques for combining and managing sprite textures for efficiency and convenience during development. More info
See in Glossary
sheets that contain continuous neighboring isometric tiles. This helps to speed up the process of preparing isometric tilemapsA GameObject that allows you to quickly create 2D levels using tiles and a grid overlay. More info
See in Glossary
if your art is contained in one single image.

Recorder updates

Recorder is now a released package and includes new codec like Apple ProRes for better compatibility with graphics and quality of life updates to enhance your capturing experience.

Recorder package

The latest release of Recorder integrates Arbitrary Output Variable (AOV) recording, which is useful for creating separations in VFX and compositing. The Recorder package also includes integrated Path Tracing and Accumulation Motion Blur for more realistic rendering effects.

Alembic package

The latest release of Alembic lets you stream an Alembic file from an arbitrary location, effectively bypassing import.

Cinemachine package

The simplified Cinemachine Impulse greatly reduces the complexity of setting up how cameras react to in-game events such as explosions.

Easily interoperate between tools with FBX Exporter

FBX Exporter is now a released package. Export scene references for animation and interoperate with popular 3D modeling software like Maya and Max for efficient iteration. You can also record animation in the Editor, so you can export references and re-key animations.

Python for Unity

The latest version of Python for Unity comes with support for Python 3.7 and doesn’t require you to install Python. In-process Python is no longer reinitialized on domain reload. PySide sample is much simpler and runs in-process, and there’s limited virtual environment support.

HDRP

HDRP Static Shadow caster and improvements

You can now cache a portion of non-directional shadow maps, which can result in performance improvements. HDRP renders dynamic shadow casters into their respective shadow maps for each frame.

Added procedural volumetric clouds in HDRP

In HDRP 12.0 you can change the default Volumetric Clouds settings to create different kinds of realistic clouds. For more advanced results, you now access more settings and import Texture maps for finer artistic control.

Lens Flare

HDRP 12.0 includes a new system to create Lens Flares. You can attach a Lens Flare (SRP) component to any GameObjectThe fundamental object in Unity scenes, which can represent characters, props, scenery, cameras, waypoints, and more. A GameObject’s functionality is defined by the Components attached to it. More info
See in Glossary
. To test the system, HDRP includes a lens flare sample that has presets and Textures. Each Lens Flare has optional multiple elements that you can control individually.

New upsampling methods

You can now use the following upsampling methods in HDRP:

  • Temporal Anti-Aliasing (TAA) Upscale: This upscale filter uses temporal integration to produce a sharp upscaled image without sacrificing visual quality at lower resolutions.
  • NVIDIA’s Deep Learning Super Sampling (DLSS) v2.2: This upscale filter uses artificial intelligence to increase graphics performance and quality.
  • AMD’s FidelityFX Super Resolution: This upscale filter uses a spatial super-resolution method that balances quality and performance. For more information, see AMD FidelityFX.

Path tracer

HDRP 12.0 includes improvements to the Path tracer features. You can now use volumetric scattering in path-traced scenes instead of linear fog. This feature also offers hair, fabric, stacklit, and AxF Materials. It also includes better HDRIhigh dynamic range image
See in Glossary
sampling that improves the visual quality when you light a scene with an HDRI Sky.

Cloud layer system

HDRP includes a new Cloud Layer volume override that you can use to render a cloud Texture on top of the sky.

Additional Properties

From HDRP 12.0, More Options is now named Additional Properties. You can now access these properties in a new way: The cogwheel that was present in component headers is now an entry in the contextual menu. When you enable Show Additional Properties, Unity highlights the background of each additional property for a few seconds to show you where they are.

Density Volumes (Local Volumetric Fog)

HDRP 12.0 includes multiple improvements to Density Volume, which is now called Local Volumetric Fog. These improvements include:

  • You can now use a RenderTexture or Custom Render TextureA special type of Texture that is created and updated at runtime. To use them, first create a new Render Texture and designate one of your Cameras to render into it. Then you can use the Render Texture in a Material just like a regular Texture. More info
    See in Glossary
    as a volume mask.
  • You can also use colored volume masks and set higher-resolution volume masks (up to 256 cube) in the HDRP Asset.
  • The Local Volumetric Fog blend distance has new linear or exponential settings.

HDRP 12.0 also includes an improved 3D Texture atlas to support different 3D texture resolutions and RGBA 3D textures.

Improved UX for HDRP Decals

Improved the UX for the following HDRP Decals placement tools:

  • The Pivot point tool
  • UV manipulation
  • Scale transform support
  • Prefab support
  • Changing the gizmoA graphic overlay associated with a GameObject in a Scene, and displayed in the Scene View. Built-in scene tools such as the move tool are Gizmos, and you can create custom Gizmos using textures or scripting. Some Gizmos are only drawn when the GameObject is selected, while other Gizmos are drawn by the Editor regardless of which GameObjects are selected. More info
    See in Glossary
    color
  • Editing multi-selection

Universal Render Pipeline (URP)

The latest release of URP includes improvements to Ambient OcclusionA method to approximate how much ambient light (light not coming from a specific direction) can hit a point on a surface.
See in Glossary
, more robust tooling for converting from the Built-in Render PipelineA series of operations that take the contents of a Scene, and displays them on a screen. Unity lets you choose from pre-built render pipelines, or write your own. More info
See in Glossary
to URP, and new packages samples. For more information on the latest changes to URP, see What’s new in URP.

Scene Debug View Modes

This release includes improvements to URP’s Scene Debug View Modes, including the new Render Pipeline Debug window which lets you inspect:

  • The properties of materials being rendered.
  • How the light interacts with these materials.
  • How shadows and LODThe Level Of Detail (LOD) technique is an optimization that reduces the number of triangles that Unity has to render for a GameObject when its distance from the Camera increases. More info
    See in Glossary
    operations are performed to produce the final frame.

Reflection probe blending and box projection

New settings for reflection probeA rendering component that captures a spherical view of its surroundings in all directions, rather like a camera. The captured image is then stored as a Cubemap that can be used by objects with reflective materials. More info
See in Glossary
blending and box projection enable better reflection quality using probes and bring URP closer to feature parity with the Built-In Render Pipeline.

URP Deferred Renderer

The URP Deferred Renderer performs light shading in screen space on a separate rendering pass after all the vertex and pixelThe smallest unit in a computer image. Pixel size depends on your screen resolution. Pixel lighting is calculated at every screen pixel. More info
See in Glossary
shadersA program that runs on the GPU. More info
See in Glossary
have been rendered. Deferred shadingA rendering path in the Built-in Render Pipeline that places no limit on the number of Lights that can affect a GameObject. All Lights are evaluated per-pixel, which means that they all interact correctly with normal maps and so on. Additionally, all Lights can have cookies and shadows. More info
See in Glossary
decouples scene geometry from lighting calculations, so the shading of each light is only computed for the visible pixels that it actually affects. This enables improved performance when rendering a large number of lights in a scene.

Decal Renderer

The Decal Renderer lets you project decal materials into the surfaces of a scene. Decals wrap around meshes and interact with the scene’s lighting. Decals are useful for adding extra textural detail to scenes, and breaking up materials’ repetitiveness and detail patterns.

Depth prepass

The depth prepass is a rendering pass in which all visible opaque meshes are rendered to populate the depth bufferA memory store that holds the z-value depth of each pixel in an image, where the z-value is the depth for each rendered pixel from the projection plane. More info
See in Glossary
(without incurring fragment shading cost), which can be reused by subsequent passes. A depth prepass eliminates or significantly reduces geometry rendering overdraw; any subsequent color pass can reuse this depth buffer to produce one fragment shader invocation per pixel.

Light Layers

Light layers are specific rendering layers to allow the masking of certain lights in a scene to affect only specific meshes assigned to the same layer.

URP Light Cookies

URP Light Cookies enable masking or filtering outgoing lights intensity to produce patterned illumination. Use this feature to change the appearance, shape, and intensity of cast light for artistic effects, or to simulate complex lighting scenarios with minimal runtime performance impact.

AMD’s FidelityFX Super Resolution

This upscale filter uses a spatial super-resolution method that balances quality and performance.

Scriptable Render Pipeline (SRP)

The following new features are compatible with URP and HDRP.

Light Anchor

Use the Light Anchor feature to manipulate lights around a pivot point instead of in world space. This makes lighting for cinematics easier and more efficient. Various presets are available to quickly place lights around a character or any center of interest. This feature is also available for the Built-in Render Pipeline.

Enlighten Realtime Global Illumination

This feature enables indirect lighting that responds to real time changes in light and material properties. Interactive visual feedback significantly reduces lighting design iteration times.

There is now support for Enlighten Realtime Global IlluminationA group of techniques that model both direct and indirect lighting to provide realistic lighting results.
See in Glossary
in HDRP and the Built-In Render Pipeline, and added support for the URP.

GPU Lightmapper tiling

The GPU Progressive LightmapperA tool in Unity that bakes lightmaps according to the arrangement of lights and geometry in your scene. More info
See in Glossary
’s new lightmapper tiling feature breaks the baking process into manageable chunks that can fit in the available GPU memory at any time. This reduces GPU memory requirements and enables faster bakes.

SRP settings workflow improvements

Various UI(User Interface) Allows a user to interact with your application. Unity currently supports three UI systems. More info
See in Glossary
/UX improvements have been made to improve workflows and provide consistency between the SRP render pipelines. This includes aligning the light and camera components between URP and HDRP.

Authoring tools

Terrain tools

The TerrainThe landscape in your scene. A Terrain GameObject adds a large flat plane to your scene and you can use the Terrain’s Inspector window to create a detailed landscape. More info
See in Glossary
tools now include the following features:

  • New Terrain sculpting brushes to bridge, clone, noise, terrace, and twist terrain.
  • Erosion heightmap-based tools (Hydraulic, Wind and Thermal).
  • Material painting controls now have noise, and layer, based filters.
  • General quality-of-life interface improvements to streamline Terrain authoring workflows with the Terrain Toolbox.

You can paint mesh Terrain details like grass, bushes or rocks using HDRP. SpeedTree 8 vegetation is now supported for HDRP and URP, including support for animated vegetation using the SpeedTree wind system, created with Shader Graph.

Visual Effect Graph

You can now use any HDRP shader made with Shader Graph (for example: unlit, lit, hair, fabric) to render primitives in the Visual Effect Graph. This change replaces the Visual Effect target in Shader Graph which is consequently deprecated (but still supported) for HDRP. It also allows you to modify particles at the vertex level, enabling effects like birds with shader-animated flapping wings or wobbling particles like soap bubbles.

Signed Distance Field

The new Signed Distance Field Bake Tool lets you directly and quickly bake a static geometry in texture 3D as a signed distance field in the Editor.

Visual effect bounds

New bound helpers can help you set up your particles’ bounds to improve culling performance or prevent culling particle systemsA component that simulates fluid entities such as liquids, clouds and flames by generating and animating large numbers of small 2D images in the scene. More info
See in Glossary
due to incorrect bounds.

Structured/graphics buffer

You can now pass data to the Visual Effect Graph using structured/graphics buffers. This is useful for complex simulations like adding hair or fluid movement, and for programmatically assigning dynamic data such as multiple enemy positions using the Visual Effect Graph.

Shader Graph

Updated Shader keyword limits

The keyword limits for Shaders have effectively been removed. A more efficient API is now available for working with keywords, with a clear separation between global and local shader keywords.

Updated ShaderLab package Dependency syntax

The ShaderLabUnity’s language for defining the structure of Shader objects. More info
See in Glossary
package Dependency feature extends the ShaderLab syntax and lets shader authors express the dependencies of shaders on packages..

Use the UI Toolkit to create runtime UI for games and applications

The UI Toolkit provides dedicated tools for visual authoring and debugging UI, renders beautiful and scalable text with TextMesh Pro, provides crisp-looking textureless rendering, and can be used alongside Unity UI (UGUI).

2D

Production-ready 2D tools

This release includes usability and stability improvements for 2D tools, with a focus on Sprite Swap workflows and 2D graphics.

2D Renderer improvements

The 2D Renderer now includes new SceneView Debug Modes with the following views: Mask, the Alpha channel, Overdraw, and mipmaps. The Sprite Mask feature now works correctly in SRP. To access it, go to Window > Analysis > Rendering Debugger > Material Override.

You can now customize the 2D Renderer with Renderer Features which allow you to add custom passes.

2D Lights are no longer experimental and are now integrated in the Light Explorer window. 2D Shadows have been optimized to support rendering Shadows to a single channel, and per-light Shadow culling.

2D Light Textures produced by the 2D Lights are now accessible in Shader Graph via the 2D Light Texture node. This allows various applications such as the creation of emissive materials for Sprites.

VFX Graph now supports 2D Unlit Shaders. Note that the Visual Effect Renderer is not affected by 2D Lights.

New 2D URP template

The new 2D URP template includes all verified 2D tools, which are precompiled to improve the load times of new projects based on this template. This template also includes URP with a preconfigured 2D Renderer, and packages with their default settings optimized for a 2D project.

UX improvements for 2D PSD Importer

The 2D PSD Importer has better control over the imported Photoshop layers, and Sprite name mapping. You can now flatten imported PSD layer groups in Unity, and the Importer can autogenerate physics shapes for the imported layers.

Set individual bone colors in the Sprite Visibility panel

This can help you to better differentiate between colors or to organize the bones according to color. The tooltips of the SkinningThe process of binding bone joints to the vertices of a character’s mesh or ‘skin’. Performed with an external tool, such as Blender or Autodesk Maya. More info
See in Glossary
Editor’s tools now display their shortcuts, and a new tool has been added to see Sprite influences over bones.

2D Tilemaps

You can now add new functionality to, or override the functions of, existing Tile Palette buttons, allowing you to create custom tools for your Tilemaps. New APIs provide information about animated Tiles, or get a range of Tiles. You can also use the TileChangeData struct to set a Tile’s position and color and transform it all at once.

2D Physics

You can now read and write primitive physics shapes (Circles, Capsules, Polygons, and Edges) using a new unified shape group feature. This new API lets you add primitive shapes to a physics shape group or retrieve them from any Collider2D or all Collider2D attached to any Rigidbody2D. Additionally, you can write a shape group directly to a new CustomCollider2D, providing fast and direct access to the Collider2D internals. You can reproduce the characteristics of existing Collider2D, create new simple Collider2Ds, or even complex procedural CollidersAn invisible shape that is used to handle physical collisions for an object. A collider doesn’t need to be exactly the same shape as the object’s mesh - a rough approximation is often more efficient and indistinguishable in gameplay. More info
See in Glossary
with the CustomCollider2D.

Trademarks and terms of use
Packages and feature sets