Unity 2021.3 is an LTS release, containing features released in 2021.1 and 2021.2, and is supported for two years. See the LTS release page for more information and other available LTS installers.
To find out more about the new features, changes, and improvements to Unity 2021 releases, see:
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:
See what’s changed in Unity 2021 LTS since 2020 LTS and view the documentation for the affected areas.
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.
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.
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.
Assets
folder (Project tab) More infosqrt(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.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.
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.
The Package Manager now contains feature sets which group together packages required for specific outcomes, like 2D game development or creating for mobile.
The Apple silicon Editor provides M1 Mac users with a native Unity Editor experience.
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.
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.
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.
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 now have performance improvements, for example:
This release features improvements for the profiling tool set, for example:
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.
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.
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.
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.
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.
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.
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.
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()
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.
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.
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 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 include:
Compressed audio support reduces the amount of memory the WebGL player uses in the browser for long-running background music and large audio files.
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.
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.
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 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.
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.
The latest release of Alembic lets you stream an Alembic file from an arbitrary location, effectively bypassing import.
The simplified Cinemachine Impulse greatly reduces the complexity of setting up how cameras react to in-game events such as explosions.
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.
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.
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.
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.
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.
You can now use the following upsampling methods in HDRP:
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.
HDRP includes a new Cloud Layer volume override that you can use to render a cloud Texture on top of the sky.
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.
HDRP 12.0 includes multiple improvements to Density Volume, which is now called Local Volumetric Fog. These improvements include:
HDRP 12.0 also includes an improved 3D Texture atlas to support different 3D texture resolutions and RGBA 3D textures.
Improved the UX for the following HDRP Decals placement tools:
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.
This release includes improvements to URP’s Scene Debug View Modes, including the new Render Pipeline Debug window which lets you inspect:
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.
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.
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.
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 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 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.
This upscale filter uses a spatial super-resolution method that balances quality and performance.
The following new features are compatible with URP and HDRP.
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.
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.
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.
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.
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:
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.
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.
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.
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.
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.
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.
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..
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).
This release includes usability and stability improvements for 2D tools, with a focus on Sprite Swap workflows and 2D graphics.
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.
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.
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.
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.
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.
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
.