With Unity Game Engine you can make real-time 3D projects for games, animation, film, automotive, transportation, architecture, engineering, manufacturing and construction. Unity also includes powerful new tools, such as Timeline and Cinemachine, empower artists to create cinematic content and gameplay sequences without the need of an engineer. Creators can now spend more time doing, less time queueing.

Unity Personal

For beginners, students and hobbyists who want to explore and get started with Unity. Completely free — no royalties, no credit card required You fully own any content you create

Everything you need to get started

Unity Personal is a great place for beginners and hobbyists to get started. It includes access to all core game engine features, continuous updates, beta releases, and all publishing platforms.

Start creating

Move efficiently from prototyping to full production with a truly flexible editor and intuitive workflows supported by tons of tutorials and ready-made assets to guide your learning and development.

Work with the latest

Continuous updates allow you to develop with all the latest and most advanced features for high-end visuals, audio, animation, physics — everything you need to make any kind of game.

Build for all audiences

Target more devices more easily — with Unity, you can build once and deploy to the largest range of mobile, VR, desktop, Web, Console and TV platforms in the industry with a single click.

What's New:

Improvements

  • Graphics: Add control to independently clear stencil buffer in CommandBuffer api.
  • Graphics: NvnDebugHud uses a different layout to display memory labels, allowing all labels to be displayed on screen.
  • Graphics: Switch shader compiler did not report correct error lines when compilation failed from included files. It is now fixed.
  • Scripting: CompiliationPipeline.GetAssemblies will now correctly include Roslyn analyzers in ScriptCompilerOptions.
  • XR: Removed "Preview" text from UI display element.

API Changes

  • Graphics: Added: New API functions with no side effects in DynamicResolutionHandler, to retrieve resolved drs scale and to apply DRS on a size.
  • Graphics: Added: New API in DynamicResolutionHandler to handle multicamera rendering for hardware mode. Changing cameras and resetting scaling per camera should be safe.

Changes

  • HDRP: Updated Wizard to better handle RenderPipelineAsset in Quality Settings
  • Package: Updates com.unity.cinemachine to 2.7.3
  • Shadergraph: Fixed a bug where property deduplication was failing and spamming errors (1317809)
  • Timeline: Updated Timeline package to version 1.5.4.
  • XR: The Oculus XR Plugin package has been updated to 1.9.0.

Fixes

  • Animation: Fixed issue where Timeline would stay stuck after going to Play Mode. (1315060)
  • Asset Import: Fixed issue where OnAssignedMaterialModel is not called for meshes that get a default material assigned. (1307374)
  • Asset Pipeline: : Fixed asset that could get reported when projectsetting.asset file is modified directly. (1270162)
  • Build Pipeline: Fixed excessive garbage collection occurring during the build process. (1318468)
  • Editor: Fixed "Lightmap Static" being displayed instead of "Contribute GI" in the editor Static flags dropdown. (1298221)
  • Editor: Fixed "TLS Allocator" error when using Asset Store Tools. (1303631)
  • Editor: Fixed for Window with 'hasUnsavedChanges' set to true not being saved when closed with Middle Mouse Button. (1307671)
  • Editor: Fixed IsArrayReorderable method producing errors in Reflect package (1321782)
  • Editor: Fixed multi-target ReorderableLists that have more than the maximum allowed multi-edit number of elements appearing as empty (1317103)
  • Editor: Fixed ReorderableList allocating memory when getting multi-target array size (1297993)
  • Editor: Fixed reordering lists with Gradient elements being visually outdated after reorder (1315679)
  • Editor: On Windows, a maximized instance of Unity on a second, lower resolution display will now remain maximized on that display when the Editor is restarted. (1314966)
  • Editor: Removed EditorGUIUtility.GetSkinnedIcon and EditorGUIUtility.GetSkinnedIconForDpi to fix unloading of unused textures. Moved part of the implementation in C++ while keeping the features provided by the removed functions. (1308097)
  • Editor: Using an unsupported keyCode in a shortcut attribute no longer throws any exceptions. (1303144)
  • GI: Fixed a null pointer bug in graphics bindings. (1310875)
  • GI: Fixed progressive updates not working for the first bake of an editor session. (1300926)
  • Graphics: Calculating correct rtHandleScale by considering the possible pixel rounding when DRS is on
  • Graphics: First Material data is used for Shadowmap rendering when using multiple Materials with the same Shader and different properties (1304644)
  • Graphics: Fix for async texture deletion to make sure graphics commands have completed first. (1280073)
  • Graphics: Scissor test was automatically disabled when changing render-targets. It is not the case anymore and is consistent with other platforms.
  • HDRP: Fixed missing Update in Wizard's DXR Documentation
  • HDRP: Fixed multicamera rendering for Dynamic Resolution Scaling using dx12 hardware mode. Using a planar reflection probe (another render camera) should be safe.
  • HDRP: Fixed pixelated appearance of Contrast Adaptive Sharpen upscaler and several other issues when Hardware DRS is on
  • IMGUI: Fixed an issue where clearing search field using 'x' button does not register changed event. (1306036)
  • iOS: Fixed a UnityWebRequest issue that caused freezing on background/resume when the device is offline. (1315244)
  • iOS: Fixed FixedUpdate being called on startup more times than should be to account for Time.deltaTime on first Update. (1318647)
  • Particles: Fixed incorrect error check in SetParticles that would cause an exception to be thrown when the offset value was equal or greater than the particles array length. (1313413)
  • Physics: Ensure that a Kinematic Rigidbody2D continues to accept MovePosition and/or MoveRotation commands when nested as a child of another Rigidbody2D. (1320783)
  • Physics: Fixed Collision.relativeVelocity being calculated incorrectly when an ArticulationBody was part of the contact pair. (1310485)
  • Scene Manager: This change prevents Unity from crashing when the asset of the current opened scene has been deleted, a new scene asset is imported, with same GUID, and the user chooses "reload". (1309393)
  • Scripting: Fixed Filename/Line extraction in logs not working correctly in some edge cases. (1300479)
  • Scripting: Fixed a problem when adding UI Toolkit pkg to a project where a scripted imported from the pkg would get rejected and exceptions would be reported to the user. (1269167)
  • Scripting: Fixed ScriptUpdater crash when Editor is installed in a folder with spaces in the path. (1309831)
  • Serialization: Fixed regression where Event code could be stripped from build when using il2cpp. (1301147)
  • Services: Fixed a bug where the crash reporting symbol uploader process would crash on Apple M1 hardware.
  • Services: Fixed a bug where the crash reporting symbol uploader process would crash on parsing certain dSYM files.
  • Shaders: Fixed #pragma once directive not working correctly with the caching preprocessor (1322879)
  • Shaders: Fixed a rare crash when upgrading shaders. (1299790)
  • Shaders: Fixed incorrect code generated by HLSLcc for textureQueryLod GLSL function (1314040)
  • Shaders: Fixed incorrect line numbers reported for errors in shader files when using Caching preprocessor (1318689)
  • Shaders: Fixed shader compilation regression on Win 7 (1318359)
  • Shaders: Fixed shader keyword overflow when doing a build (1297800)
  • Shaders: Fixed sprites using default sprite material not rendering in the Editor when build target is set to console (1318066)
  • Timeline: Fixed error message when playing an audio track from its last sample. (1319163)
  • Video: Calling VideoPlayer.Prepare and VideoPlayer.StepForward produces a frame on a Render Texture (1318270)
  • WebGL: Added support for detecting Chrome and Firefox browsers on iOS devices. Fixes an issue that Chrome and Firefox browsers would fail to load on iOS 14.4. (1316861)
  • WebGL: Changed behavior of Application.OpenURL() for the WebGL platform to open an URL in a new browser tab instead of opening the URL in the current browser tab and thus navigating away. (1320393)
  • Windows: Setting a custom cursor now respects Windows DPI and Ease of Access settings related to the cursor size. (1305480)
  • XR: Always disable optimized frame pacing when using XR. (1288764)
  • XR: Fixed rect used by scissor test on Vulkan (1203183)
  • XR: Fixed URP Vulkan shows low perf on stress test when running development build. (1299445)
  • XR: Updated XR Interaction Toolkit to 1.0.0-pre.3.

Known Issues in 2021.1.2f1

  • Addressable Assets: Performance bug reported by the DOTS team in PreloadManager::WaitForAllOperationToComplete (1322086)
  • 2D: [Skinning Editor] Vertex can't be created after modifying Vertexes weight and when Sprite is from the .psb file (1322204)
  • Windows: [Windows 7] "WindowsVideoMedia error 0xc00d36b4" error is thrown when loading a video with the VideoPlayer (1306350)
  • Scripting: Increased Script Assembly reload time (1323490)
  • Asset Bundles: Synchronous Asset Loading Does Not Correctly Load Preload Dependencies (1321141)
  • Linux: Linux Editor crashes at "_XFreeX11XCBStructure" when loading tutorials (1323204)
  • Asset Importers: [Performance Regression] Importing an fbx model is noticeably slower when the model contains Animations (1265275)
  • Terrain: Crash on TreeRenderer::WillRenderTrees when being in Play Mode for several seconds (1317966)
  • IMGUI: Contents of a ModalUtility window are invisible when it is launched from a Unity Context Menu (1313636)
  • Global Illumination: Reflection probes doesn't contain indirect scene lighting after the on-demand GI bake from the Lighting window (1324246)
  • Packman: User can't easily configure location of both UPM and Asset Store package local cache (1317232)
  • Serialization: Crash in SerializedProperty::IsValid when reordering a SerializedProperty list (1320319)
  • Global Illumination: [GPUPLM] Crash in RadeonRaysMeshManager::RemoveGeometry while baking Terrain game object with 4k lightmaps on certain GPU (1255993)
  • Terrain: Terrain Lit Opacity as Density option causes alpha'd areas on the 5th layer or greater to appear with artifacts (1283124)
  • Global Illumination: Wintermute::Geometry::Verify errors are spammed when baking a Mesh with Mesh Compression set to Medium/High (1319133)
  • Cloth: Cloth is broken when parent GameObject scale is lower than 1 and Surface Penetration constraints are set 0 (1319488)
  • XR: OpenXR + URP + UWP rendering stuck (1323833)
  • MacOS: [macOS] "build is damaged and cannot be opened" error when downloading Unity build from internet (1323501)
  • Packman: Package Manager incorrectly shows that there are no packages in a new project (1319205)
  • Scripting: Crashes on mono_class_init when entering Play Mode after recompiling scripts (1262671)
  • Asset Importers: Wintermute::Geometry::Verify errors are spammed when baking a Mesh with Mesh Compression set to Medium/High (1313968)
  • 2D: [URP] The Camera renders black screen when Post Processing is enabled in the 2D Renderer and in the Camera Component (1318500)
  • Polybrush: [PolyBrush] Something went wrong saving brush settings Warning is thrown when Saving a Brush after opening the PolyBrush Window (1315475)

Final 2021.1.0f1 Release Notes

Features

  • Graphics : Added real-time Point Light Shadows to URP.
  • 2D: Added a button in the Tile Palette window to let users toggle drawing of Grid Gizmo in the Tile Palette window.
  • 2D: Added a confirmation dialog for the Sprite Editor window when the Apply or Revert button is pressed. Enable or disable this option in Preferences.
  • 2D: Added an option to enable/disable Alpha Dilate for SpriteAtlas.
  • This adds ability to use Alpha Transparency for padding pixels around Sprite Borders when packing SpriteAtlas.
  • 2D: Added C# Job Tessellation support for Fill Area of SpriteShape.
  • 2D: Added Isometric Grid slicing to Sprite Editor.
  • 2D: Enabled users to toggle drawing of Grid Gizmo for a Grid component in the SceneView. To enable or disable this feature, use the SceneView Gizmo button or the list in the Gizmo dropdown.
  • Burst: Added a compiler warning for any use of throwing an exception from a method not guarded by [Conditional("ENABLE_UNITY_COLLECTIONS_CHECKS")]. Since exceptions in Burst are only supported in the editor, this provides a useful warning to users who may be relying on try/catch behaviors for control-flow which is not supported in final game builds.
  • Burst: Added ability for exceptions thrown from Burst to contain a callstack.
  • Burst: Added experimental support for some ArmV8.2A intrinsics (dotprod, crypto, RDMA).
  • Burst: Added experimental support for tvOS.
  • Burst: Added first batch of Arm Neon intrinsics. Currently, only ArmV8 (AArch64) targets are supported. The supported intrinsics include all ArmV7 and ArmV8 ones.
  • Burst: Added intrinsics support for AtomicSafetyHandle.NewStaticSafetyId.
  • Burst: Added preliminary support for loading additional burst compiled libraries in play mode/standalone.
  • Burst: Added support for Apple silicon chipsets.
  • Burst: Added support for calling Burst code directly from C# without using function pointers.
  • Burst: Added support for creating profiler markers from Burst code.
  • Burst: Added support for new intrinsics.
  • Burst: Added support for stacktraces in Burst exceptions.
  • Burst: Added support for try/finally and using/foreach for IDisposable patterns.
  • Burst: Added support for version 11 of the LLVM compiler infrastructure.
  • Burst: Added support for Visual Studio 2017 for certain platforms.
  • Burst: Added support to load additional burst libraries in playmode/standalone for the intention of allowing Modding support on desktop platforms.
  • Burst: Added the new option [BurstCompile(DisableSafetyChecks = true)] which allows per job or function-pointer disabling of safety checks.
  • Burst: Added the option to display Burst compilation status in the Background Tasks window.
  • Burst: Added BurstCompiler.IsEnabled API.
  • Burst: An error message if attempting to BurstCompiler.CompileFunctionPointer() on a multicast delegate, since this is not supported in Burst.
  • Burst: Improved Editor experience by scheduling compilation immediately after assemblies are changed, instead of waiting until Play Mode is entered.
  • Burst: Improved our aliasing detection to allow DynamicBuffer structs to be easily vectorizable.
  • Burst: Updated Burst to fully support ARMv7 and ARMv8-A Neon intrinsics.
  • Burst: Updated Burst to use version 10.0.0 of the LLVM compiler infrastructure by default.
  • Burst: You can now select explicit x86/x64 architecture SIMD target for Universal Windows Platform.
  • Editor: Added Device Simulator window as a Core feature of the Editor.
  • Editor: Fetch the access token in a synchronous way if username and password are passed in arguments.
  • Editor: Improved integration Search in Unity.
  • Graphics: Added support for skinned mesh sampling in VFX.
  • Mobile: Added a transparency scaler for Adaptive Performance.
  • Mobile: Added settings for Adaptive Performance to control the Indexer's thermal and performance actions when using the Device Simulator.
  • Package: Added Visual Scripting (previously known as Bolt) as a default package.
  • Package Manager: Added a new Add package by name dropdown option and revamped the existing Add from git URL dropdown option.
  • Package Manager: Added an information box describing the current flow of the package when the version is not "Released".
  • Package Manager: Provided more choices concerning the Load Next value when using the My Assets filter.
  • Package Manager: Removed 'See all versions' option in version list for external users, and added Project Setting for internal users to re-enable this option.
  • Package Manager: Removed the "Release Candidate (RC)" tags from the Package Manager for released builds. RC packages now show the "Pre-release" tags.
  • Package Manager: The Package Manager now supports installing packages from a browser hyperlink (even experimental packages).
  • Package Manager: Updated Package Manager UI version tags for new Lifecycle and logic for recommending/showing available versions to users.
  • Particles: Added new Emitter velocity mode - Manual. This mode can be used to override the ParticleSystem's calculated emitter velocity value. This gives scripts complete control over the ParticleSystem velocity. It is also possible to use this whilst authoring a system to simulate movement when making an effect that relies on movement.
  • Scripting: Added the ability to setup script compilation defines in the assmebly definition inspector, depending on the Unity version the scripts are being compiled for.
  • UI Toolkit: Added 2D Sprites use as background style images.
  • UI Toolkit: Added in-Canvas style toggles for flex and text alignment.
  • UI Toolkit: Added rich text style properties to the Inspector.
  • UI Toolkit: Added sprite support in UI Toolkit.
  • UI Toolkit: Added support for azimuthAngle, altitudeAngle, twist, and multiple Pen devices in EventSystem when using Input System package.
  • UI Toolkit: Added support for mixed values mode in the UI Toolkit when implementing the Property field.
  • UI Toolkit: Added the ability to drag and drop and re-order elements in the Canvas.
  • UI Toolkit: Added the PanelEventHandler and PanelRaycaster components. These enable the UI Toolkit panels to receive events and selections from a standard UI EventSystem. Added the SetUITookitEventSystemOverride method to EventSystem. This lets you override the UI Toolkit event system and define whether to create panel components automatically on start. Added PanelSettings sortingOrder to determine drawing and selection order between UI Toolkit panels and UI canvases.
  • UI Toolkit: Added UI Builder, a visual UI authoring tool for UI Toolkit, to the Unity Editor. This was previously released as a package (com.unity.ui.builder).
  • UI Toolkit: Added user theme stylesheet enumeration and preview in the Canvas.
  • UI Toolkit: Added USS variable search in Inspector style fields.
  • UI Toolkit: Implemented dynamic texture slots to reduce batch breaking.
  • XR: Implemented Late Latching for XR to reduce rendering latency.
  • XR: Implemented Late Latching to reduce VR latency.

Improvements

  • 2D: Added information foldout in Tilemap Inspector for showing the Tile and Sprite assets used in the Tilemap.
  • 2D: Better placements of Tiles generated from Sprites whose Texture was Isometric Sliced in the Sprite Editor.
  • 2D: Improve performance when applying changes after slicing a texture for the Sprite Editor.
  • 2D: Improved Automatic Palette Sizing by setting a better fitting size when sizes of Sprites are of multiples of each other. Otherwise, the largest size for Sprites is used.
  • 2D: Improved memory and speed of Animation SpritePostProcess for large sprite count.
  • 2D: Improved performance in SceneView for SceneViewOpenTilePaletteHelper.
  • 2D: Improved slicing performance. (1271316)
  • 2D: Show grid preview when slicing spritesheets.
  • 2D: Store and reuse last used location when creating Tiles from the Tile Palette window.
  • 2D: Update 2D template to use current verified version of 2D packages.
  • Android: Enabled use of Android 11 setFrameRate API when Optimized Frame Pacing is enabled and Vulkan is used, similar to OpenGL ES.
  • Android: Expanded the Create symbols.zip build setting for Android. The options are Disabled/Public/Debugging. Modified the symbols to always have the .so extension. Symbols are included for libil2cpp (if IL2CPP is selected), libmonobdwgc-2.0 (if Mono is selected), libunity, libmain. If uploading the zip package to Google Play Console for automatic stacktrace resolving, use Public symbols. (1288739)
  • Android: Improved load and reload time for OBBs.
  • Android: Improved Time.deltaTime consistency for OpenGL ES and Vulkan graphics APIs.
  • Android: Updated Android NDK to r21d.
  • Asset Import: Improved performance when registering Scripted Importers, especially when large numbers of scripted importers are being registered together. (1228635)
  • Asset Import: Optimized the import processing when using "Alpha is Transparency" texture import option. The processing is now several times faster.
  • Asset Import: Reduced cost of domain reloads on asset import worker process by removing unnecessary additional domain reloads.
  • Asset Pipeline: Added documentation for: IsDirectoryMonitoringEnabled, IsAssetImportWorkerProcess, GetTextMetaFilePathFromAssetPath, CacheServerConnectionChangedParameters, cacheServerConnectionChanged.
  • Asset Pipeline: Calling ForceProduceArtifact now also omits the use of local cached artifacts, in addition to omitting cache server artifacts.
  • Asset Pipeline: Changed API doc:AssetDatabase.LoadAssetAtPath.
  • Asset Pipeline: Changed how logging behaves when an import worker is importing. Logging is now forwarded to the main editor log.
  • Asset Pipeline: Improved calling ProduceArtifact rapidly so that it doesn't produce multiple artifacts.
  • Asset Pipeline: SpriteAtlas importer gathers its differences differently now.
  • Build Pipeline: (DS-1018) Added WithDebugInformationFormat to the compiler settings for MsvcCompiler.
  • Build Pipeline: Upgraded udp package to 2.1.0.
  • Burst: Improved codegen.
  • Core: Improved error message in certain cases where the disk is full.
  • Core: Reduced thread contention on JobQueue internal memory allocation.
  • Documentation: Clarified an aspect of Mip Stripping docs.
  • DX12: Optimize ray tracing acceleration structure building on the render thread (roughly 2x speedup).
  • DX12: When reading vertex attributes from vertex buffers (closest hit / any hit shaders), we now fill only the channels that are available instead of returning 0 when trying to read more attribute channels than available.
  • Editor: A newly-created Scene View window now copies last active Scene View settings. (1264773)
  • Editor: Added "Localize compiler messages" to Preference Window>Language to localize compiler messages in the current language.
  • Editor: Arrays/lists inspector UI control now supports multi-selection of array elements.
  • Editor: Clear on Recompile' option added to console's 'Clear' context menu. (1264753)
  • Editor: Improve the multi-selection display of Culling Mask and Static fields of certain components. (1190806)
  • Editor: Improved multi-select performance in ReorderableList. (1279141)
  • Editor: Improved the reliability of our SQLite implementation.
  • Editor: LODGroup values can now be edited via input fields in addition to the slider. Input field editing also works in multi-selection mode.
  • Editor: Optimized mobile ASTC texture compression (about two times faster now).
  • Editor: Optimized mobile ASTC texture compression again (~10% faster).
  • Editor: Optimized mobile ETC/ETC2/EAC texture compression (about two times faster now).
  • Editor: Optimized mobile PVRTC texture compression (8% faster).
  • Editor: Optimized various parts of texture importing (5%-20% faster depending on settings and texture types used).
  • Editor: Optimized various parts of texture importing (~10% faster depending on settings and texture types used).
  • Editor: Reduced Editor repaints while rendering HDRP.
  • Editor: Removed Enable Code Coverage option from Preferences/General and moved it inside the Code Coverage package.
  • Editor: Scene/Game view Gizmos drop-down window now has a Search field. (1274775)
  • Editor: Two new events added to ObjectSelector: ObjectSelectorSelectionDone: An item in the list is double-clicked; and ObjectSelectorCanceled: The window was closed by explicitly pressing escape on the keyboard.
  • Editor: Updated Navigation icons. (1254021)
  • GI: Hid Enlighten-specific settings when it is not supported by the SRP. Affected areas are Mesh Renderer, Light, Scene view, Lighting Explorer and Lightmap Parameters.
  • GI: Removed very verbose logging behavior during lighting data asset building.
  • GI: Unity now stores memory-related logs in a file instead of just reporting them in the console.
  • Graphics: Exposed RayTracingAccelerationStructure.RemoveInstance to C# Scripting API.
  • Graphics: Fixed async readback crashing on DX12 if buffer was a SubUpdates buffer.
  • Graphics: Improved error on DX12 while trying to set stable power state but windows was not in developer mode.
  • Graphics: Improved the compression speed of ASTC textures.
  • Graphics: Improved the loading time of single mip cubemaps on GameCore.
  • Graphics: Optimized static batching process, e.g. entering play mode with 30k static batched objects in the editor is faster by two seconds.
  • Graphics: Removed redundant calls when setting shader program parameters.
  • Graphics: UnityEngine.Profiling.Recorder.gpuElapsedNanoseconds now can measure GPU time on OpenGL ES3.
  • IL2CPP: Improved IL2CPP failure so it results in one (instead of two) error messages. The error message text is displayed with as little extra information as possible, so that it is more understandable.
  • IL2CPP: Improved the error message that was displayed when building for Windows and the required Visual Studio components were not installed.
  • IL2CPP: On Android, the public symbol file (for ex., libil2cpp.sym.so) will no longer contain debugging symbols, it will only contain the symbol table. Debugging symbols are present in libil2cpp.dbg.so. This should significantly lower the file size of libil2cpp.sym.so.
  • IL2CPP: When script debugging is enabled, stack traces include C# source code line numbers for all assemblies where debug symbols are available.
  • Kernel: Fixed instability in FolderContentsMatchesTheOneReturnedByGenerateDirectoryStructure test.
  • License: Synced access token with L-Client upon change.
  • Mobile: Updated Mobile Notifications package to 1.3.2.
  • Networking: Make UnityWebRequest objects properly show up in profiler. (1017004)
  • Package: A warning is raised when adding more than one Input unit in a SuperUnit.
  • Package: Open the inspector button and double clicking a graph in the project browser, now opens the visual scripting editor.
  • Package: Updated input system package to 1.0.2.
  • Package: Updated to ProBuilder 5.0.0.
  • Package: Updated udp 2.1.4.
  • Package: Warns the user when an Input System Package event is referencing an action of the wrong type for that event.
  • Physics: Rearrange the ArticulationBody properties so that damping and friction is located right after mass and is not visually separated from it by the anchor properties.
  • Prefabs: Optimized the performance of undo operations on objects in nested Prefabs by up to 30%.
  • Profiler: Added profiling support for Asset importing via direct IP connection.
  • Profiler: Added progress bar for loading and saving Profiler data.
  • Profiler: Added the ability to specify a port in the Profiler Window, when connecting to the Profiler to a player via an IP address.
  • Profiler: Changed call stacks displayed in the CPU Usage Profiler module so that they only show calls that have more information than just their memory address, by default. Enable Full details for Call Stacks if you want to see the addresses.
  • Profiler: Changed call stacks displayed in the selection tool-tip of Timeline view so that they are clickable if they contain file information.
  • Profiler: Duplicated sample names in the Call view's tooltip to improve readability. (1241955)
  • Scripting: Added c/cpp/mm/m/java/h as defaults to "Project Settings->Editor->Additional extensions", so they appear in the code editor, which therefore provides an easy way to edit and inspect them. (1284679)
  • Scripting: Added support for new managed code stripping annotation attributes.
  • Scripting: Added support for Unity Version Defines in Assembly definition import options.
  • This feature improvement allows scripts to easily specify different code snippets for different Unity version ranges. This is especially useful for introducing calls to newly added public APIs, in which case these API calls need to be guarded by defines based on a Unity version range of a given Unity version or later.
  • The Unity version range expression syntax is the same as the package version range expressions. The Unity version format differs from the package version format, so Unity version expressions are evaluated based on some rules specific to the Unity version format:
  • Comparison of release types follows the following rules: a
  • The Unity versions are allowed to have suffixes (e.g 2020.1.3-bonfire) which are ignored by the Unity version comparison code
  • Chinese releases are equivalent to public releases (f) so for the sake of comparison in the version range expression 2020.1f3 would be equal to 2020.1c3.
  • Experimental releases don't include an Incremental Version. For example. everything after 2020.2.1x would be treated as a suffix and ignored by the version comparison.
  • Scripting: Changed Roslyn analyzers to be run as part of the normal compilation step.
  • This also results in analyzer errors being treated as compiler errors.
  • Scripting: Greatly improved the performance of GameObject.FindGameObjectWithTag and GameObject.FindGameObjectsWithTag.
  • Scripting: Improved the performance of the ApiUpdater.
  • Scripting: Improved the user interface when setting up Unity version defines for asm definitions in the Editor.
  • Scripting: Script Compilation is now incremental across player builds.
  • Scripting: Script compilation now has a background task progress bar when auto-refresh is disbled.
  • Scripting: Script Updater approval dialog now shows you which files will be overwritten before you give permission.
  • Scripting: Script Updater now causes fewer script recompiles when importing/upgrading projects.
  • Scripting: Scripting: Improved documentation for Application.isPlaying.
  • Scripting: The errors that trigger a script updater are no longer displayed in the console window.
  • Scripting: The MenuItem for manually running script updater is removed. It now always offers to update when it finds a compilation error it can fix.
  • Search: Fixed search doesn't display all results in project view. It now includes the same result as the legacy search engine (i.e. AssetDatabase.FindAssets). (1310140)
  • Search: Improved the search help text when there is no result for the current search tab.
  • Shaders: #pragma require now works from compute shaders as well.
  • Shaders: Added shader name to messages in the log about shader state being unsupported,.
  • Shaders: Shaders can now use UNITY_PLATFORM_ defines to specialize compilation per build target platform (examples: UNITY_PLATFORM_OSX, UNITY_PLATFORM_WINDOWS).
  • Terrain: Added "Delete Brush..." button to the brush selection UI.
  • Terrain: Now a "Hole Edge Padding" option is added to terrain Detail Prototype that you can control how far details objects will be from the hole edge.
  • Terrain: Now an error message will show up on UI when you select an invalid detail prototype.
  • Terrain: Reduced Terrain per-frame CPU update cost.
  • UI Toolkit: Improved renderer batching.
  • Version Control: Smart Merge (UnityYamlMerge) now allows ignoring "tiny" float differences in some fields. For a configuration example, see mergerules.txt. (1211899)
  • WebGL: Added support for QualitySettings.vsyncCount.
  • WebGL: Added support for smooth rendering of decimated frame rates for 60/k fps (30, 20, 15, 12, 10 and 5 fps).
  • WebGL: Added support for vsyncless rendering for development/profiling purposes. To enable this, set QualitySettings.vsyncCount = 0 and Application.targetFrameRate = 1000.
  • XR: Updated API docs on XRDisplaySubsystem.scaleOfAllViewports and XRDisplaySubsystem.scaleOfAllRenderTargets.
  • XR: Updated MagicLeap XR Plugin package to 6.2.2.
  • XR: Updated Oculus XR Plugin package to 1.8.1.
  • XR: Updated Windows Mixed Reality package to 4.1.1.
  • XR: Updated XR Plug-in Management package to 3.2.16 and Windows MR XR Plug-in package to 5.0.0.

API Changes

  • 2D: Added: Added Tilemap.GetUsedSpritesCount/NonAlloc to allow users to get information on the Sprites used in the Tilemap.
  • 2D: Added: Added Tilemaps.TileFlags.KeepGameObjectRuntimeOnly flag to allow users to keep GameObjects from Tiles after removing the originating Tile.
  • 2D: Added: SpriteAtlasAsset can be loaded/saved using SpriteAtlasAsset.Load and SpriteAtlasAsset.Save.
  • Android: Added: Added API level 30 to AndroidSdkVersions enum.
  • Animation: Added: Added a new parameter to the MatchTarget function for auto matching completion in case of interruption.
  • Animation: Added: Added UnbindAllStreamHandles and UnbindAllSceneHandles to manage Animation C# job handles. (1238832)
  • Asset Bundles: Added: Added AssetBundle.UnloadAsync for unloading assetbundles in the background. (1281619)
  • Asset Import: Added: Added CanOpenAssetInEditor method to check whether an asset would be opened in Editor.
  • Build Pipeline: Added: ContentBuildInterface.CalculatePlayerSerializationHashForType for providing precise per type dependency tracking for incremental rebuild of asset bundles.
  • Build Pipeline: Added: New API FilterToSubset on BuildReferenceMap & BuildUsageTagSet providing more control over native build data, reducing unnecessary asset bundle rebuilds.
  • Burst: Added: Intrinsics: Neon - Added support for basic vld1 APIs.
  • Core: Added: Added new Screen, Application and SystemInfo classes in UnityEngine.Device namespace, that can mimic platform-specific behavior in the Unity Editor when used with Device Simulator.
  • Editor: Added: Added a callback when pivot mode, pivot rotation, view tool enable and grid snap enable are changed.
  • Editor: Added: Added EditorGUIUtility.SetMainWindowPosition.
  • Editor: Added: Added MeshPreview class for drawing an interactive Editor preview of a Mesh asset. (1184921)
  • Editor: Added: Added attributeType argument to OnOpenAssetAttribute to denote a function used to check if the asset would be opened in Editor.
  • Editor: Added: API method for setting custom diff tool. (1246952)
  • Editor: Added: EditorGUI.LinkButton and EditorGUILayout.LinkButton are now public.
  • EditorUtility.OpenPropertyEditor is now public.
  • Editor: Added: EditorUtility SetDefaultParentObject and ClearDefaultParentObject methods were added.
  • Editor: Added: Improved Search API documentation and added many examples.
  • Editor: Changed: HelpURLAttribute now supports derived classes in order to generate dynamic URLs.
  • Editor: Obsoleted: Remove Slave from MPE API and documentation.
  • Editor: Obsoleted: Renamed some SearchService API's classes to prevent name clashes.
  • GI: Added: Added two new callbacks: LightProbes.needsRetetrahedralization which is called whenever the current registered probes and tetrahedralization are out of sync, and LightProbes.tetrahedralizationCompleted which fires after (re-)tetrahedralization is done.
  • Graphics: Added: Added a history rejection criterion based on if the pixel was moving in world space. (1302392)
  • Graphics: Added: Added a new function in GeometryTools.hlsl to calculate triangle edge and full triangle culling.
  • Graphics: Added: Added an additional check in the "check scene for ray tracing". (1314963)
  • Graphics: Added: Added an option to flag renderers as static shadow casters in order to facilitate the implementation of cached shadow map in SRP.
  • Graphics: Added: Added color and intensity customization for Decals.
  • Graphics: Added: Added methods to check if Material/MaterialPropertyBlock contains a property based on type (e.g. MaterialPropertyBlock.HasFloat, Material.HasColor, etc.).
  • Graphics: Added: Added new API Graphics.minOpenGLESVersion and built-in keyword SHADER_API_GLES30.
  • Graphics: Added: Added new API in CachedShadowManager.
  • Graphics: Added: Added new API SystemInfo.GetRenderTextureSupportedMSAASampleCount(RenderTextureDescriptor desc) to query the correct MSAA samples count of a RenderTexture.
  • Graphics: Added: Added new SystemInfo.supportsStoreAndResolveAction API to check for StoreAndResolveAction store action support on a specific platform.
  • Graphics: Added: Added pivot point manipulation for Decals (inspector and edit mode).
  • Graphics: Added: Added the default quality settings to the HDRP asset for RTAO, RTR and RTGI. (1304370)
  • Graphics: Added: Added UV manipulation for Decals (edit mode).
  • Graphics: Added: API to allow OnDemand shadows to not render upon placement in the Cached Shadow Atlas.
  • Graphics: Added: BatchRendererGroup: Added optional visibleIndicesY array. Data available in shader in Y channel. (Hybrid Renderer V2).
  • Graphics: Added: Exposed the API to set the renderDynamicObjects for Custom reflection probes.
  • Graphics: Added: Exposed update upon light movement for directional light shadows in UI.
  • Graphics: Added: Made GraphicsSettings.GetGraphicsSettings() public.
  • Graphics: Added: Support for the PlayStation 5 platform has been added.
  • Graphics: Added: Support for the XboxSeries platform has been added.
  • Graphics: Changed: Added callbacks to RenderPipelineManager that don't cause GC. (1259717)
  • Graphics: Changed: RenderRequestMode now has enum values for PBR materials data.
  • iOS: Added: Added iOS.Device.iosAppOnMac flag to check if app built for iOS is running on Mac equipped with Apple Silicon chip.
  • iOS: Obsoleted: The public accessor for the legacy Game Center player ID is now unavailable, and will be removed completely in the next major release of Unity.
  • Mobile: Added: Adaptive Performance: Updated the version defines for the device simulator to support it in 2021.1 without package.
  • Networking: Added: UnityWebRequest now supports sending/receiving data using NativeArray, avoiding managed allocations (UploadHandlerRaw and DownloadHandlerBuffer). (1138156)
  • Package: Added: Added ApplyAfter option to ImpulseListener, to add control over the ordering of extensions.
  • Package: Added: New feature: CinemachineConfiner2D - Improved 2D confiner.
  • Package Manager: Added: The UnityEditor.PackageManager.PackageInfo class has a new GetAllRegisteredPackages method which returns the list of packages currently registered.
  • Package Manager: Obsoleted: UnityEditor.PackageManager.PackageInfo.status' and 'UnityEditor.PackageManager.PackageStatus' are now obsolete.
  • Particles: Added: Added emitterVelocity property to InitialModule.
  • Physics: Added: Expose ArticulationBody.collisionDetectionMode property to set various collision detection modes, like Discrete, Continuous and etc.
  • Physics: Added: Expose ArticulationBody.computeParentAnchor option to control whether the parent anchor is matched to the other one automatically or not.
  • Physics: Added: Expose ArticulationBody.SnapAnchorToClosestContact function to place the anchor to a position where the risk of collider overlap is minimised.
  • Physics: Added: Make WheelCollider.sprungMass writable, to enable explicit mass distributions. In addition to that, expose WheelCollider.ResetSprungMasses() to reset the vehicle back to automatically calculated implicit sprung masses. It's the same usage pattern as with Rigidbody.inertiaTensor / Rigidbody.ResetInertiaTensor().
  • Player: Added: Added several object pool implementations including: ObjectPool, LinkedPool, GenericPool, UnsafeGenericPool and CollectionPool.
  • Profiler: Added: Added API for interacting with the Profiler Window and the selection in the CPU and GPU Usage Profiler modules.
  • Scripting: Added: Added a new AsyncReadManager FileInfo() API to check for a file's existence and (if present) the file size.
  • Scripting: Added: Added Vector3Int.forward and Vector3Int.back.
  • Scripting: Added: Introduced query for compute shader hardware support:
  • ComputeShader.IsSupported(int kernelIndex).
  • Scripting: Added: Time.timeAsDouble added
  • Scripting: Time.timeSinceLevelLoadAsDouble added
  • Scripting: Time.fixedTimeAsDouble added
  • Scripting: Time.unscaledTimeAsDouble added
  • Scripting: Time.fixedUnscaledTimeAsDouble added
  • Scripting: Time.realtimeSinceStartupAsDouble added.
  • Scripting: Changed: New Added Unity.IO.LowLevel.Unsafe.ReadStatus.Truncated result for completion of a truncated read. A truncated read occurs when an asynchronous file request attempts to read beyond the end of a file.
  • Added Unity.IO.LowLevel.Unsafe.ReadStatusExtension methods -Unity.IO.LowLevel.Unsafe.ReadStatusExtension.Complete() returns true on successful completetion regardless of truncated file reads.
  • Scripting: Deprecated: Deprecated IIl2CppProcessor.
  • Scripting: Deprecated: Deprecated IUnityLinkerProcessor.OnAfterRun.
  • Scripting: Deprecated: Deprecated IUnityLinkerProcessor.OnBeforeRun.
  • Scripting: Obsoleted: Removed UnityEditorInternal.ScriptEditor.
  • Scripting: Removed: Previously undocumented EditorUtility.CompileCSharp() is removed. Its functionality can be achieved through the supported AssemblyBuilder class.
  • Scripting: Removed: Removed UnityEditorInternal.GetExternalScriptEditorArgs as it was throwing not supported exception.
  • Services: Changed: Updating analytics dashboard to point to new location.
  • Shaders: Deprecated: Material, MaterialPropertyBlock and Shader API for working with "Int" properties is deprecated. Use "Integer" or "Float" properties and the corresponding API instead.
  • UI Toolkit: Added: Added a new dropdown menu made of VisualElements to enable popup fields in runtime.
  • UI Toolkit: Added: Added a new DropdownField control to UI Toolkit runtime.
  • UI Toolkit: Added: Added KeyboardNavigationManipulator to simplify the implementation for users.
  • UI Toolkit: Added: Added MeasureTextSize method for InputFields.
  • UI Toolkit: Added: Added RadioButton and RadioButtonGroup controls.
  • UI Toolkit: Added: UQuery: Enumerator support allows for foreach iteration with no or minimal gc allocations.
  • UI Toolkit: Changed: ProgressBar was moved to UnityEngine.UIElements to support runtime.
  • UI Toolkit: Obsoleted: ShowHorizontal is obsolete. Use horizontalScrollerVisibility instead.
  • UI Toolkit: Obsoleted: ShowVertical is obsolete. Use verticalScrollerVisibility instead.
  • Universal: Added: Fixed material upgrader to run in batch mode. (1305402)
  • Universal: Added: Removed Custom.meta which was causing warnings. (1314288)
  • VFX Graph: Added: Added sample vertices of a transformed skinned mesh with Position (Skinned Mesh) and Sample Skinned Mesh operator.
  • VFX Graph: Added: Placement option (Vertex, Edge, Surface) in Sample Mesh & Skinned Mesh, allows triangle sampling.
  • XR: Added: Updated XR Plug-in Management to 4.0.1.

Changes

  • 2D: Updated com.unity.2d.sprite package license.
  • 2D: Updated com.unity.2d.tilemap package license.
  • Android: Removed use of QualitySettings.vSyncCount for Android.
  • Android: Vulkan is no longer preferred over OpenGL ES when using Android 7 and for all Mali Midgard GPUs.
  • Asset Import: When Meshes have no material defined in the imported file, the ModelImporter now assigns the default material to them rather than creating a 'No name' material sub-asset.
  • Burst: Burst enters RC phase.
  • Burst: Burst now uses platform-provided memory intrinsics for iOS, tvOS, WASM, and console platforms.
  • Burst: Bursted DOTS Runtime Jobs are now decorated with [NativePInvokeCallback] instead of [MonoPInvokeCallback]. This fixes the problem where [MonoPInvokeCallback] jobs could generate callback wrappers which could cause native code to inadvertently interop with the managed VM.
  • Burst: Changed how exceptions throw types and messages are stored in our Burst binaries to reduce binary size.
  • Burst: Changed the Burst menu-item Safety Checks to a modal choice of Off, On, or Force On. Force On will overwrite any user job or function-pointer with DisableSafetyChecks = true. To avoid users falling into the consistent trap of having Safety Checks set to Off, any reload of the Editor will issue a warning telling the user that Safety Checks have been reset to On.
  • Burst: Changed to inliner heuristics to improve build time and reduce executable size.
  • Burst: DOTS Runtime shares the logging code path with the general case.
  • Burst: Eager-compilation is now cancelled when script compilation starts, to prevent spurious errors related to recompiled assemblies.
  • Burst: Exception strings no longer contain the entry-point name of the job/function-pointer that caused the throw. This change was required because the Burst compiler has to produce deterministic results from any given compile, which is fundamentally opposed to per-entry-point function derivations.
  • Burst: Improved Burst initialization time.
  • Burst: Improved Burst Inspector loading time.
  • Burst: Improved eager-compilation performance.
  • Burst: Improved performance of "eager-compilation" (scheduling compilation immediately after assemblies are changed) by cancelling queued eager-compilation when entering play mode with Synchronous Compilation unchecked.
  • Burst: Improved performance of eager-compilation by not eager-compiling test assemblies.
  • Burst: In versions of Unity older than 2019.3, changing the following options in the Burst menu now requires the Editor to be restarted: Enable Compilation, Safety Checks, and Native Debug Mode Compilation. In versions of Unity older than 2019.3, previously-compiled methods were not recompiled after changing those options, which could lead to undefined behavior where methods might not be compiled with the correct options. This change removes that possibility.
  • Burst: Made the compiler better at constant-folding complex static readonly constructors.
  • Burst: Open-generic static methods are now hidden in the Burst Inspector. They are not supported by Burst, but they were previously visible.
  • Burst: Temporarily removed the Burst compiler warning about exception throws not in [Conditional("ENABLE_UNITY_COLLECTIONS_CHECKS")] methods, to let us address user feedback. The next minor version of Burst will reincorporate this in a more friendly manner.
  • Burst: The Burst Inspector no longer uses JIT compilation. The code it shows is now compiled the same way as for editor / player usage.
  • Burst: The command line option --burst-disable-compilation now entirely disables Burst, including the AppDomain.
  • Burst: Updated Cross Compilation Tooling To LLVM 10.
  • Burst: Upgraded Burst to use LLVM Version 11.0.1 by default, bringing the latest optimization improvements from the LLVM project.
  • Burst: Warnings are hidden in the inspector view.
  • Burst: When using "Executable Only" build type on Universal Windows Platform, Burst will now only generate code for a single CPU architecture that you're building for.
  • Editor: Deleting an object reference array entry in the Inspector now removes that array element. Previously first deletion set the element reference to none, and the second deletion deleted the element.
  • Editor: Deprecated Device Simulator package, feature moved to Core.
  • Editor: Quick Search is now part of the Unity Editor and no package needs to be installed.
  • Graphics: Avoids unnecessary RenderGraphBuilder.ReadTexture in the "Set Final Target" pass.
  • Graphics: Changed Path Tracing's maximum intensity from clamped (0 to 100) to positive value. (1310514)
  • Graphics: Changed so texture formats DXT1 and DXT5 in the UI labels are now named "DXT1|BC1" and "DXT5|BC3", indicating terminology used by modern graphics APIs.
  • Graphics: Changed some light unit slider value ranges to better reflect the lighting scenario.
  • Graphics: Changed switch shaders to now use separate samplers instead of combined texture-samplers objects.
  • Graphics: Changed the clamping approach for RTR and RTGI (in both perf and quality) to improve visual quality.
  • Graphics: Changed the convergence time of ssgi to 16 frames and the preset value.
  • Graphics: Changed the name from the Depth Buffer Thickness to Depth Tolerance for SSGI. (1301352)
  • Graphics: Changed the source value for the ray tracing frame index iterator from m_FrameCount to the camera frame count. (1301356)
  • Graphics: Changed the warning message for ray traced area shadows. (1303410)
  • Graphics: ComputeBuffer.IsValid now returns false when compute is not supported and ComputeBuffer.BeginWrite throws InvalidOperationException for invalid ComputeBuffers. (1259525)
  • Graphics: Disabled specular occlusion for what we consider medium and larger scale ao > 1.25 with a 25cm falloff interval.
  • Graphics: Improved robustness of volumetric sampling in path tracing. (1295187)
  • Graphics: Removed backplate from rendering of lighting cubemap as it did not really work conceptually and caused artefacts.
  • Graphics: Removed postprocessing package from core packages list.
  • Graphics: Removed the material pass probe volumes evaluation mode.
  • Graphics: Texture2D.Compress now compressed R8 textures to BC4 and R8G8 textures to BC5, on mobile platforms ETC/EAC are used.
  • Graphics: The RTAO's history is now discarded if the occlusion caster was moving. (1303418)
  • Graphics: Tidy up of platform abstraction code for shader optimization.
  • Graphics: Transparent materials created by the Model Importer are set to not cast shadows.
  • Graphics: Unifying the history validation pass so that it is only done once for the whole frame and not per effect.
  • Graphics: Updated postprocessing package to 3.1.0.
  • Graphics: Updated the tooltip for the Decal Angle Fade property (requires to enable Decal Layers in both HDRP asset and Frame settings). (1308048)
  • Graphics: VT-internal warnings no longer show up in the editor window, but still get printed into the editor log file.
  • Mobile: Made session bugfixes for Adaptive Performance provider subsystem management.
  • Package: Added the Code Coverage package as pre-release. This package helps you identify areas of your code that need more testing, even if you haven't written any automated tests.
  • Package: Storyboard Global Mute moved from Cinemachine menu to Cinemachine preferences.
  • Package: UI update - Moved Cinemachine menu to GameObject Create menu and Right Click context menu for Hierarchy.
  • Package: Updated Code Coverage package to v1.0.0.
  • Package: Updated com.unity.cinemachine to 2.7.2.
  • Package: Updated com.unity.purchasing version to 3.0.1.
  • Package: Updated FBX Exporter package to 4.0.1:
  • https://docs.unity3d.com/Packages/com.unity.formats.fbx@4.0/manual/index.html
  • Package Manager: The Package Manager no longer discards the existing package state in case of critical errors such as failure to parse the project manifest.
  • Scripting: AsyncReadManager.Read no longer writes the number of bytes read to the input ReadCommand array. The bytes read can now be accessed via the new ReadHandle.GetBytesRead method.
  • Scripting: Changed NativeArray limit of 2GiB in size, and now it can contain 2^31 items instead.
  • Scripting: Improved Roslyn analyzers that are inside assembly definition folders so that they apply to the asmdef assembly itself and to other assemblies that reference the asmdef assembly, but not to any other code in the project.
  • Scripting: Reintroduced a warning thrown when a script derived from MonoBehaviour has the same name as a built-in component (e.g. Transform).
  • Search: Removed the resource search provider (res:).
  • Shaders: Editor now skips warming up shaders from shader collections in the Preloaded shaders section of Graphics settings.
  • Shaders: Increased the global shader keyword limit to 384.
  • Shaders: Shader compiler logs are now generated in Logs folder instead of Library.
  • Timeline: Updated Timeline package to version 1.5.2
  • UI: Changed the license file based on legal requirements.
  • UI: Changed the Shader property for soft masking from _MaskSoftnessX / Y to _UIMaskSoftnessX / Y so we dont overlap with TMP's shader properties.
  • UI Toolkit: Allow :root pseudo selector to target the element receiving the style sheet.
  • UI Toolkit: Changed DynamicAtlas system to track texture references and support dynamic removals.
  • UI Toolkit: Changed the blending equation to allow blending of the resulting RenderTexture.
  • UI Toolkit: Improved renderer batching.
  • UI Toolkit: Mobile touch scrolling is now supported in scrollviews and listviews.
  • UI Toolkit: Text rendering is now handled by the textcore fontengine for both the editor and runtime.
  • UI Toolkit: Updated the menu item for Live Reload to be called "UI Toolkit Live Reload" to avoid user confusion.
  • VFX Graph: Tidy up of platform abstraction code for random number generation, requires a dependency on com.unity.render-pipelines.core for those abstractions.
  • XR: Updated com.unity.xr.legacyinputhelpers package to 2.1.6.
  • XR: Updated Oculus XR Plugin package to 1.7.0.
  • XR: Updated the ARCore, ARKit, ARKit Face Tracking, ARFoundation, ARSubsystems packages to 4.1.1.
  • XR: Updated the verified package versions for AR Foundation and related packages.
  • XR: Updated Windows XR Plugin package to 5.2.0.
  • XR: Updated XR Plug-in Management package to 3.2.17.

Fixes

  • 2D: Clear existing Tile data in Tilemap when refreshing Tilemap due to editor validation. (1272540)
  • 2D: Fixed Create Physics2DMaterial menu item not being available when Physics2D module is enabled. (1300647)
  • 2D: Fixed dynamic batching of SpriteRenderers with TilemapRenderers in Individual Mode with the BaseMap shader property.
  • 2D: Fixed exception when upgrading/downgrading packages used by Sprite Editor Window that is currently active. (1242988)
  • 2D: Fixed Grid Selection outline when undoing a Grid Select action. (1275085)
  • 2D: Fixed IDE tooltip for Tilemap documentation. (1292596)
  • 2D: Fixed missing Sprite reference after loading scene from AssetBundles. (1274645)
  • 2D: Fixed null exception error when entering PlayMode with the Tile Palette window open and Inspector window open inspecting a GameObject. (1287664)
  • 2D: Fixed offset placement of Tile placed when dragging in a single Sprite or Tiles onto the Tile Palette window.
  • 2D: Fixed Sprite Editor Window doesn't show the Sprite when the Inspector is locked and the Sprite is not selected in the Project window.
  • 2D: Fixed Sprite is removed from Objects for Packing list of Sprite Atlas when using undo after replacing the Sprites. (1261537)
  • 2D: Fixed Sprite with no animation data is being processed during AssetPostProcessor.
  • 2D: Made com.unity.2d.sprite and com.unity.2d.tilemap discoverable in Package Manager.
  • 2D: Mark com.unity.2d.tilemap.extras as discoverable.
  • 2D: Name Tiles based on Texture of Sprite when creating Tiles from nameless Sprites. (1281572)
  • 2D: Order Tile Palette better when creating Tiles from a Sprite Texture when the size of Sprites are of multiples of each other. (1281560)
  • 2D: Prevent Tile Palette Prefabs from showing as a Active Target for the Tile Palette window when selected.
  • 2D: Removed border visual from 2D default Sprite textures. (1299684)
  • 2D: Sprite Editor Window shows Editor Window's 'Save Changes' dialog before if it is closed if there are pending changes that needs to be apply. (1274232)
  • 2D: Store modified values of Grid Selection when asset/s are saved. (1287084)
  • Ads: Fixed issue where there could be a 400 error when enabling ads. (1308010)
  • AI: Fixed editor crash when accessing null terrain tree meshes. (1271682)
  • Android: Added a warning if making a signed release Android build without Arm64 binaries. (1289652)
  • Android: Fixed a compilation error that occurred when using framebuffer fetch on single-channel texture formats. (1261534)
  • Android: Fixed a crash that occurred when enabling/disabling camera access permission. (1262468)
  • Android: Fixed a mismatch between deltaTime and unscaledDeltaTime. (1266965)
  • Android: Fixed a problem with custom Aspect ratio value in manifest file. (1284210)
  • Android: Fixed an issue when using RenderDoc on Android with Vulkan on some Adreno devices caused by Unity's ASTC HDR support detection. (1287309)
  • Android: Fixed an issue where the Build Settings window went black when SDK/build-tools were missing. (1230551)
  • Android: Fixed crash when using UAV with Vulkan on older Mali devices. (1256902)
  • Android: Fixed issue where GL_EXT_shader_framebuffer_fetch wasn't added when fragment method is in an included file.
  • Android: Fixed wrong caret position inside InputField when quickly typing or deleting text. (1252556)
  • Android: Modified behavior to deselect ARM64 when switching to Mono, and restore when switching back to IL2CPP. (1281826)
  • Android: Reduced the overhead of making the GetBigLittleConfiguration() call. (1285344)
  • Android: Removed gray banner that was displayed for projects built with -nographics enabled. (1199310)
  • Android: Updated Android Logcat package to version 1.2.1.
  • Android: Updated the Run Device tooltip on how to access the Preferences menu item. (1213519)
  • Android: When running Android SDK tool with elevated privileges use JDK bundled with Unity, previous behavior was the SDK tool would use java from PATH env variable, and would fail if there's no java installed and there's no java path set in PATH env variable. (1290206)
  • Animation: Fixed a display issue in the Inspector window that occurred after adding multiple StateMachineBehaviours to an object. (1278575)
  • Animation: Fixed an animation out of bounds issue. (1295247)
  • Animation: Fixed an issue where a humanoid mask did not correctly override during a transform. (1218558)
  • Animation: Fixed an issue where an Animation clip with a length less than 0.05 seconds would not left align. (1267304)
  • Animation: Fixed an issue where Timeline window playback was disabled after unlinking the Animation window. (1285659)
  • Animation: Fixed an issue with culling mode when the renderer became visible. (1294699)
  • Animation: Fixed an issue with stepped animation evaluation. (1277195)
  • Animation: MeshFilter.mesh property is now animatable. (1228956)
  • Asset Bundles: Fixed main thread hitching when loading an AssetBundle asynchronously while loading other assets in the background.
  • Asset Import: Added Help box in the Model importer rig panel to inform about the state of QualitySettings.skinWeights when the Model importer skin weights value is higher. (1194866)
  • Asset Import: Fixed bug where renaming a script doesn't properly take effect on asset import workers.
  • Asset Import: Fixed corrupted PSD file could crash the Editor. (1284882)
  • Asset Import: Fixed issue where embedded textures cannot be extracted from FBX files. (1307542)
  • Asset Import: Fixed issue where FBX and Sketchup files with paths longer than 260 characters cannot be imported on Windows.
  • Asset Import: Fixed issue where Reset does not apply to the 'Bake Axis conversion' setting in ModelImporter. (1228920)
  • Asset Import: Fixed OnOpenAsset callbacks ignoring callback order. (1297473)
  • Asset Import: Fixed such that Arguments are used as doubles rather than floats, allowing the FindGridCell method to have greater boundaries. (1280470)
  • Asset Import: ModelImporter's remap Materials entries do not accept sub-assets materials anymore. (1243094)
  • Asset Import: Removed auto-alphabetization of items within a prefab. (1112123)
  • Asset Import: Texture Preview now updates correctly when switching from Alpha 8. (1181655)
  • Asset Pipeline: Added warning dialog before running out of disk space. Check is done on every refresh.
  • Asset Pipeline: Asset db file scanner will now error report files/folders that have a path or name that exceeded current limits. Path limit is 505/510 bytes (510 for meta file) and file name limit is 250/255 (255 for meta file). This fixes also an issue that would occur if a folder name was too long for getting a .meta counterpart. (1280028)
  • Asset Pipeline: Deleting an asset in use in import worker could cause an infinite refresh loop. (1263755)
  • Asset Pipeline: Fixed an issue where hash of a .asset file on disk was being updated locally without going through the AssetDatabase, resulting in native source assets to not be reloaded. (1183116)
  • Asset Pipeline: Fixed for invalid artifact id assert that could get raised, when undo was restoring an object from a deleted asset. (1254071)
  • Asset Pipeline: Fixed issue when calling AssetDatabase.IsValidFolder() with a path that has a trailing slash at the end. (1153840)
  • Asset Pipeline: Fixed shutdown discovered when reimporting all assets. (1274119)
  • Asset Pipeline: Fixed: changes made to Asset outside Unity are not applied during Play Mode when "Recompile After Finish Playing" is set in preferences. (1150790)
  • Asset Pipeline: Logging in import worker will now always log to local import worker log file. (1286454)
  • Audio: Fixed a crash that occurred on the macOS version of the Unity editor when AudioRenderer was repeatedly stopped then played. (1283073)
  • Audio: Fixed a volume fluctuation issue that occurred in Timeline audio when the scene was changed. (1198128)
  • Audio: Fixed an initialization issue on macOS that occurred when no audio input devices were available.
  • Audio: Fixed an issue in the Inspector window where the Wet slider did not immediately appear after selecting "Allow wet mixing" in the AudioGroup Strip View (1276039)
  • Audio: Fixed DSPGraph playback not being paused when the player was paused.
  • Bug Reporter: Bug Reporter throws an error if the project contains a shortcut to a path outside of the Assets folder. (1160328)
  • Bug Reporter: The Bug Reporter executable is now bundled with libssl 1.0.0 version. (1293315)
  • Build Pipeline: Fixed GlobalObjectIdGlobalObjectIdentifiersToObjectsSlow returning random objects when then GlobalObjectId references a non-existing object. (1291291)
  • Build Pipeline: StreamingAssets AssetBundle manifest is now provided by default to PlayerBuild, which will result in types being referred by AssetBundle being kept in the build even if Player.Optimization.Managed Stripping Level is set to Medium or High.
  • Build System: - Removed requirements over ILRepack when building Unity source code.
  • Removed requirements over ILRepack when building Unity source code.
  • Fixed ILRepack that was detected as Trojan:Win32/Wacatac.B!ml.
  • Removed ILRepack from external directory, now downloading ILRepack from our public stevedore repository.
  • You now have to explicitly call .\jam.pl BuildSystemProgramFiles to generate the solution for Unity Build System.
  • Burst: ABI struct ret/by val for trivial aggregates for WASM is now respected.
  • Burst: Added PreserveAttribute to prevent the internal log from being stripped in il2cpp builds.
  • Burst: Allow to call [BurstCompile] functions from other [BurstCompile] functions.
  • Burst: Bitmask intrinsic was broken on non intel platforms.
  • Burst: Burst will now error if a cpblk was used to copy into a [ReadOnly] parameter or field.
  • Burst: Clang segmentation fault on iOS when member function debug information was emitted, it is disabled for this platform now.
  • Burst: Corrected 'Enable safety checks tooltip`.
  • Burst: Debug symbols are now output when using the native toolchain on mac.
  • Burst: Debug symbols for function names on some platforms are no longer hashes.
  • Burst: Dwarf symbols from multiple modules (e.g. multithreaded AOT compilation) now have correct compilation unit information.
  • Burst: Filter symbol warnings to prevent them reaching logs.
  • Burst: Fixed a bug that occurred when an explicitly laid out struct was used by a dup instruction, which caused an internal compiler error.
  • Burst: Fixed a bug where a static readonly variable that was a System.Guid would result in an internal compiler error.
  • Burst: Fixed a bug where a stfld into an element of a vector could deduce the wrong type for the underlying vector.
  • Burst: Fixed a bug where eager-compilation could pick up out-of-date global Burst menu options for compiling.
  • Burst: Fixed a bug where explicitly casting from an int to IntPtr would not sign extend the value.
  • Burst: Fixed a bug where if a user had defined multiple implicit or explicit casts, the compiler could resolve to the wrong cast.
  • Burst: Fixed a bug where if you used an enum argument to a function to index into a fixed array, a codegen error would occur.
  • Burst: Fixed a bug where loading from a vector within a struct, that was got from a NativeArray using an indexer, would cause the compiler to crash.
  • Burst: Fixed a bug where the Burst post-processing for direct call would cause duplicate function pointers to be compiled, wasting compile time in the editor and caused an Editor launch stall.
  • Burst: Fixed a bug where the mm256_cvtepi32_ps intrinsic would crash the compiler.
  • Burst: Fixed a bug where the progress bar would report double the amount of pending compile jobs if a user changed the Burst options while background compilation was going on.
  • Burst: Fixed a bug whereby for platforms that require us to write intermediate LLVM bitcode files, UTF paths would be incorrectly handled.
  • Burst: Fixed a bug with constant expressions that could cause a compile-time hang.
  • Burst: Fixed a bug with float/double vector constructors of Unity.Mathematics that take half or half vector parameters.
  • Burst: Fixed a macOS hang that could occur when a native hardware exception was thrown from Burst code while a dylib was being loaded from disk. (1307691)
  • Burst: Fixed a poor error message when a generic unsupported type (like a class or an auto-layout struct) combined with an unsupported managed array (like (int, float)[]) wouldn't give the user any context on where the code went wrong.
  • Burst: Fixed a very obscure bug where if you had a function-pointer that was called from another function-pointer of job, and that function-pointer happened to be compiled in a player build in the same bucket as the caller, and the no-alias cloning analysis identified that it could clone the original function-pointer to enable more aliasing optimizations, it could create a duplicate symbol error.
  • Burst: Fixed alignment issues associated with xxHash3 on ArmV7 (case 1288992).
  • Burst: Fixed an internal compiler error when nested managed static readonly arrays were used (produces a proper Burst error instead now).
  • Burst: Fixed an issue that could prevent the Editor from shutting down.
  • Burst: Fixed an issue where Burst would erroneously error on BurstCompile.CompileFunctionPointer calls when building for the DOTS Runtime.
  • Burst: Fixed an issue where UNITY_DOTSPLAYER builds not building for NET_DOTS would be unable to compile do to references to UnityEngine.
  • Burst: Fixed compilation errors when targeting Arm CPUs and using some of the Intel intrinsics.
  • Burst: Fixed compilation errors when targeting Intel CPUs and using some of the Arm Neon intrinsics.
  • Burst: Fixed DOTS Runtime JobProducer Bursting code to support JobProducers with multiple generic arguments, complex job wrapper and generic jobs.
  • Burst: Fixed handling of conversion from signed integer to pointer which caused issues as discovered by Zuntatos on the forums.
  • Burst: Fixed incorrect struct layout for certain configurations of explicit-layout structs with overlapping fields.
  • Burst: Fixed Inspector slow down when scrolling/moving the window on large listings.
  • Burst: Fixed managed implementation of sub_ss intrinsic.
  • Burst: Fixed managed implementations of blend_epi32 and mm256_blend_epi32 intrinsics on Mono.
  • Burst: Fixed permissions error when running lipo tool to combine libraries.
  • Burst: Fixed potential error that could occur when unloading cached libraries.
  • Burst: Fixes a caching issue where stale cached libraries may have been used if a project was copied to a different folder, or Unity was upgraded to a newer version.
  • Burst: If targeting multiple iOS architectures, produce a combined burst library containing all architectures, this fixes "New Build System" on xcode version 12.
  • Burst: IL Function Pointer Invoke Transformation now uses correct runtime library for dots runtime.
  • Burst: IL Function Pointer Invoke Transformation updated to handle transforms that affect instructions that are the destination of a branch.
  • Burst: Intrinsics: Neon - fixed vget_low and vget_high producing suboptimal code.
  • Burst: Job Entry point symbols should now reflect the job name and type rather than a hash in callstacks/native profilers.
  • Burst: Job entry points without symbols now use the Execute location rather than pointing to unknown/unknown.
  • Burst: Multiple bugfixes (please look at https://docs.unity3d.com/Packages/com.unity.burst@1.5/changelog/CHANGELOG.html for a detailed list).
  • Burst: Private [BurstCompile] methods no longer throw MethodAccessException.
  • Burst: Sleef fallback to scalar float for WASM.
  • Burst: String interpolation issues when using Dots / Tiny runtime.
  • Burst: Strings can now be passed between methods.
  • Burst: We no longer attempt to replace the debug metadata multiple times for a given export.
  • Core: Fixed static analysis issue:
  • Non-static class member "isListening" is not initialized in this constructor nor in any functions that it calls. (1291660)
  • Documentation: Updated the documentation to describe the design of OnApplicationFocus when using Play Mode in the Editor. (1283510)
  • DX12: Fixed a crash when executing a CommandBuffer that references a deleted RayTracingAccelerationStructure object.
  • DX12: Fixed a crash when RayTracingShader.Dispatch is called with an acceleration structure that was deleted in the meantime. (1281285)
  • DX12: Fixed for incorrect parameter type on native plugin API IUnityGraphicsD3D12v5::TextureFromRenderBuffer and IUnityGraphicsD3D12v6::TextureFromRenderBuffer. (1278695)
  • DX12: Fixed potential crash in Debug builds when exiting Unity Editor when DX12 is used. (1309031)
  • Editor: Added a foolproof EditorGUIUtility.ResetGUIState(); when drawing Inspectors in the Override Preview panel. (1242693)
  • Editor: Added a new flag called forceChildVisibiityfor the SerializedObject to control the visibility of hidden children. (1273848)
  • Editor: Added padding to ReorderableList elements. (1281324)
  • Editor: Added some missing sizes (64, 128, 256) for selected icons. (1249745)
  • Editor: Allow Hyphen character in Input Field when ContentType Property is set to Name. (1270473)
  • Editor: Checking and enabling VSync when Unmaximizing the Game view. (1254640)
  • Editor: Context menu shows in destination window in the Mac editor, regardless of whether the destination window is focused. (1134774)
  • Editor: Create Empty Parent' no longer relies on Scene View position.
  • Editor: Cursor is now locked to the center of the Game view in the Linux editor instead of the center of the screen when cursor lock is called in Play mode. (1272190)
  • Editor: Detect circular asset references, instead of crashing. (1249114)
  • Editor: Double-click on tab header maximizes/unmaximizes it. (1279177)
  • Editor: Dragging-and-dropping files across folders inside the Project Window will now prompt the user to choose what to do with a file when there are conflicting file names. (1210088)
  • Editor: Fixed issue where Terrain objects could still be selected despite picking being disabled. (1251889)
  • Editor: Fixed "Frame Selected" shortcut being invoked when Game View is focused and Play Mode is active, improving performance. (1252043)
  • Editor: Fixed 'Toggle hidden packages visibility' not affecting embedded/local packages. (1245277)
  • Editor: Fixed -api-profile flag causing Editor to write to ProjectSettings/ProjectSettings.asset using binary serialization mode despite ForceText being configured in ProjectSettings/EditorSettings.asset.
  • Editor: Fixed a crash that could occur when Burst compilation was scheduled before Burst had been initialized.
  • Editor: Fixed a potential null reference exception in the Editor Tool Manager. (1251555)
  • Editor: Fixed a small issue with item position varying slightly in the Editor when display scaling is set to something other than 100%. (1269754)
  • Editor: Fixed a warning generated by undoing color change while picker is open. (1262695)
  • Editor: Fixed adding and removing components expanding collapsed components view in the Inspector window. (1280892)
  • Editor: Fixed an error where Slider1D was called with an invalid vector. (1284682)
  • Editor: Fixed an issue causing incorrect display of redo operation when using GameObject.RegisterCreatedObjectUndo with a custom action name. (1281435)
  • Editor: Fixed an issue on Mac where open/save dialogs could not use copy/paste keyboard or menu shortcuts. (1252424)
  • Editor: Fixed an issue to avoid "" string in the "Aniso Level" slider's value input field, in the Inspector, with multiple textures selected. (1226069)
  • Editor: Fixed an issue to avoid overlapping of Input fields and their labels in CustomRenderTextureEditor's Inspector if the Inspector is resized. (1268481)
  • Editor: Fixed an issue to avoid trimming of text in header, if header parameter contains line separator. (1269034)
  • Editor: Fixed an issue to create Sorting Layers with the different names. (1268131)
  • Editor: Fixed an issue to disable cut and copy in context when multiple objects are selected with different values. (1292164)
  • Editor: Fixed an issue to set EnumFlagsField values properly while editing with multi-selected objects. (1282836)
  • Editor: Fixed an issue to set static flag in inspector on 'Set to Value of X' in context menu . (1221145)
  • Editor: Fixed an issue where Account, Layer, and Layout buttons disappear when resizing the Editor beyond the width of the screen in MacOS. (1254983)
  • Editor: Fixed an issue where creating a Terrain material from a Terrain preset no longer causes a null reference access warning. (1240871)
  • Editor: Fixed an issue where on Windows, when using the mouse in a Unity window, the wrong mouse position is used in other Unity windows. (1275064)
  • Editor: Fixed an issue where the default index doesn't filter prefabs using t:prefab. (1284865)
  • Editor: Fixed an issue where UnityEngine.Selection.objects should not return nulls. (1274421)
  • Editor: Fixed an issue where, after Play In Editor completed, settings were reset to default.
  • Editor: Fixed an issue with adding new tags and sorting layers in the Preset of 'Tags & Layers'. (1268174)
  • Editor: Fixed an issue with object selector closing inappropriately on click. (1286812)
  • Editor: Fixed Animation window keyframe Copy/Paste keyboard shortcuts not working before the main curve area has been clicked on. (1265480)
  • Editor: Fixed bad initial sync of search query. (1296709)
  • Editor: Fixed blue line that appears when component cannot be placed while reordering or adding new components in the Inspector. (1300581)
  • Editor: Fixed broken search for many types when attempting to assign assets to exposed property fields. (1307402)
  • Editor: Fixed ConsoleWindow copy for SafeMode. (1276089)
  • Editor: Fixed crash in GizmoUtilTests. (1274537)
  • Editor: Fixed crash when duplicating a GameObject with HideInHierarchy flag. (1288394)
  • Editor: Fixed CSharpCompiler.CompileAssemblyFromSource on Linux.
  • Editor: Fixed Custom font reset option not resetting all the values to their defaults. (1268319)
  • Editor: Fixed doc and typo in Scene Template Pipeline. (1286440)
  • Editor: Fixed ETC Compression Legacy/Default that auto fills fast/normal settings. (1277170)
  • Editor: Fixed expand/collapse icon settings when clicking on label. (1195293)
  • Editor: Fixed focused Inspector window tab is not updated when GameObject is renamed. (1285646)
  • Editor: Fixed initial size of SafeMode when used for the first time. (1275799)
  • Editor: Fixed invisible asset created in the Project browser after renaming it with 260+ characters. (1281291)
  • Editor: Fixed issue so preview Object names when selecting multiple assets are now displayed correctly. (1184882)
  • Editor: Fixed issue so that correct prefab positioning in Hierarchy after undo and redo are called. (1268662)
  • Editor: Fixed issue so that the camera inspector FOV slider now correctly adjusts its range when the FOV axis is horizontal. (1219321)
  • Editor: Fixed issue so that when app bundle identifier contains invalid chars (iOS/Android), they are removed with warning. (1183580)
  • Editor: Fixed issue so the green button on windows in MacOS now shows menu items correctly enabled when button is held. (1268232)
  • Editor: Fixed issue to Handle Set/Clear As Active Parent Object action Undo correctly. (1275084)
  • Editor: Fixed issue to restrict the access of CurrentViewWidth Property within OnGUI. (1289492)
  • Editor: Fixed issue where changing Editor mode shows "Failed to load window layout". (1293093)

System Requirements

For development

  • OS: Windows 7 SP1+, 8, 10, 64-bit versions only; macOS 10.12+. (Server versions of Windows & OS X are not tested.)
  • CPU: SSE2 instruction set support.
  • GPU: Graphics card with DX10 (shader model 4.0) capabilities.
  • The rest mostly depends on the complexity of your projects.
  • Additional platform development requirements:
  • iOS: Mac computer running minimum macOS 10.12.6 and Xcode 9.0 or higher.
  • Android: Android SDK and Java Development Kit (JDK); IL2CPP scripting backend requires Android NDK.
  • Universal Windows Platform: Windows 10 (64-bit), Visual Studio 2015 with C++ Tools component or later and Windows 10 SDK

For running Unity games

  • Generally content developed with Unity can run pretty much everywhere. How well it runs is dependent on the complexity of your project. More detailed requirements:

Desktop:

  • OS: Windows 7 SP1+, macOS 10.12+, Ubuntu 16.04+
  • Graphics card with DX10 (shader model 4.0) capabilities.
  • CPU: SSE2 instruction set support.
  • iOS player requires iOS 10.0 or higher.
  • Android: OS 4.4 or later; ARMv7 CPU with NEON support; OpenGL ES 2.0 or later.
  • WebGL: Any recent desktop version of Firefox, Chrome, Edge or Safari.
  • Universal Windows Platform: Windows 10 and a graphics card with DX10 (shader model 4.0) capabilities
  • Exported Android Gradle projects require Android Studio 3.4 and later to build