Unity 2020.3.16

Select the runtime platforms of your choice from the list below (the desktop runtime is included as standard) or, to install the full complement of runtime platforms, use the download assistant installer above.
New to Unity? Get started

Known Issues in 2020.3.16f1

  • Asset Importers: Editor crashes on UnityEditor.Unsupported:IsDestroyScriptableObject when applying changes to a custom asset (1353925)

  • Asset Importers: [MacOS] Second Unity instance in Activity Monitor is "not responding” after importing. (1331736)

  • Audio: Crash on AudioMixer_CUSTOM_FindSnapshot when passing null as an argument to FindSnapshot() (1341752)

  • Customer QA Onboarding: Unity does not execute code weavers when the project is opened for the first time (1350116)

  • Global Illumination: Crash while sculpting Terrain and Baking Lightmaps (1266511)

  • Global Illumination: [Enlighten] Fatal Error when closing the Editor while Generating Lighting (1354238)

  • Global Illumination: [LightProbes] Probes lose their lighting data after entering Play mode when Baked and Realtime GI are enabled (1052045)

  • IMGUI: Editor's Toolbar is sometimes replaced by a white bar when opening any Scene (1341951)

  • Linux: Crash on DisableSubMenu when double clicking to close a context menu (1347655)

  • Linux: InputSystem's Mouse delta values do not change when the Cursor lockState is set to Locked (1248389)

  • Linux: Linux Editor crashes at "_XFreeX11XCBStructure" when loading tutorials (1323204)

  • Metal: Performance in Game View is significantly impacted by Gfx.WaitForPresentOnGfxThread when a second monitor is connected (1327408)

  • Mobile: [Android] Using TouchScreenKeyboard.Open with a non-empty placeholder multiple times causes the app to crash (1347370)

  • Mobile Graphics: [iOS] Player crashing when connecting external Display via USB-C port (1321153)

  • Mono: Crash on "(KERNELBASE) RaiseException" when reloading Mono assemblies for play mode (1289744)

  • Mono: Crash on mono_thread_get_undeniable_exception (1308625)

  • Mono: [Mono Upgrade] CommandBuffer native plugin events hang in the Editor (1308216)

  • Packman: User can't easily configure location of both UPM and Asset Store package local cache (1317232)

  • Polybrush: [PolyBrush] Something went wrong saving brush settings Warning is thrown when Saving a Brush after opening the PolyBrush Window (1315475)

  • Profiling: GarbageCollectAssets is triggered frequently when higher frame counts are set (1332708)

  • Profiling: Poor profiler performance when navigating the timeline view and reviewing data with many threads (1339407)

  • Quality of Life: Crash on GUIView::DoPaint when selecting color with a color picker (1355078)

  • Scene Management: Crash on BuildPrefabInstanceCorrespondingObjectMap when overriding nested prefab inside AssetDatabase.StartAssetEditing() block (1324978)

  • Scripting: Crashes on mono_class_init when entering Play Mode after recompiling scripts (1262671)

  • Scripting: Error CS8035 is thrown on opening a project when using rulesets (1349517)

  • Scripting: Increased Script Assembly reload time (1323490)

  • Templates: Editor Crashes when performing Undo and Redo after duplicating Game Object with LEGO Model Asset component (1298503)

  • Templates: [Linux] Missing libdl.so library causes crash when entering Playmode for the second time or closing the Editor (1237642)

  • uGUI: Performance degradation when activating or deactivating uGUI GameObject (1348763)

  • Video: Video player fails to start playing and null handle errors are thrown when running Unity Editor/Build with specific hardware (1237818)

  • Vulkan: Linux Editor using Vulkan crashes at " GfxDeviceVK::EnsureValidBackbuffer" when showing tooltips for ProBuilder buttons (1335846)

  • Vulkan: [Editor] The Scene's GameObjects textures are seemingly random and change colours depending on the Scene's Camera pos. (1337772)

2020.3.16f1 Release Notes


  • Package: ProBuilder 4.5.2

  • Shaders: Added support for specifying package requirements for SubShaders and Passes to ShaderLab.


  • Android: Bump Android Logcat package to 1.2.3

  • Graphics: Improvements to scene culling CPU performance - Shadow casters are rejected earlier if their shadow casting is disabled which should improve performance in scenes with scenes with lots of renderable objects that are set to not cast shadows. (1322874)

  • Graphics: VFX : Optimization while sending event to a VisualEffect by script

  • iOS: Improve logging in iOS automation: clarify existing log messages and add new ones.

  • Networking: UnityWebRequest on iOS no longer uses operation queue for uploads, upload data will request by a callback from system.

  • Prefabs: optimized Prefab->UnpackCompletely by up to 10x (1253178)

  • Package Manager: The Package Manager's global cache root folder, which is used to store downloaded packages, can now be configured using the UPM_CACHE_ROOT environment variable or the cacheRoot key in the user configuration file.

API Changes

  • Asset Pipeline: Added: Added AssetDatabase.SaveAssetIfDirty() to save individual assets if required.

  • Graphics: Added: A new API for compiling shaders from editor code and obtaining reflection info was added to ShaderData.Pass.

  • Physics: Added: Added a property for retrieving ArticulationBody components during a collision event. Articulation bodies can be retrieved by Collision.articulationBody

  • Physics: Added: Added a property for retrieving either ArticulationBody or Rigidbody components to collision events under Collision.body.


  • 2D: Tile.StartUp is called after Tilemap is loaded instead of on the first Update after Tilemap is loaded. (1327583)

  • Android: Allow Android Player to use Vulkan on GPUs that are currently unknown to Unity on Android 11 or newer.

  • Burst: Platform updates.

  • Core: Added disposal checks when enumerating NativeArray and NativeSlice instances, provided that collection checks are enabled

  • Graphics: Update SRP packages to 10.5.1

  • iOS: Use Shell.ExecuteProgramAndGetStdout for process handling in iOS automation code


  • 2D: Fixed dynamic batching for Sprite Renderers and Tilemap Renderers in Individual mode whose batching parameters should match in runtime platforms. (1348082)

  • 2D: Prevent instantiation of GameObjects from Tiles directly onto a prefab (1334466)

  • AI: Fixed crash caused by the NavMesh builder code in very rare and specific configurations of the world geometry. (1329346)

  • AI: Fixed issue where the NavMesh was generated over a mesh marked as "Not Walkable". (1109195)

  • Android: Fix all microphones reporting same recording state when bluetooth microphone is connected. (1298249)

  • Android: Fix severe disk I/O regression on Android 5.0.x. (1287681)

  • Android: Fixed an unresponsive area just above keyboard when "Hide mobile input" was checked. (1305663)

  • Android: In case of fast swipes, Begin touch event will report starting touch position and End touch event will report deltaPosition and deltaTime since previous event. (1325554)

  • Animation: Removed invalid error message when passing < 0.02f values as normalizedTime parameter to the Animator.Play function (1311378)

  • Asset Bundles: Texture Importer Inspector no longer throws errors when built-in texture inspector is overwritten. (1317450)

  • Asset Import: Prevent data in the Assets\StreamingAssets folder from being cached by the Unity Accelerator. (1295717)

  • Asset Importers: Fixed a crash (due to running out of VRAM) when importing many textures using DX11. (1324536)

  • Asset Pipeline: Fixed a problem with old script type dependencies. In some cases they could result in (incorrect) artifact match. (1340159)

  • Asset Pipeline: Fixed an issue where searching in the object selector would for some searches only show icons even if previews could be shown. (1309396)

  • Audio: Fix incorrect behavior of audio filter components on game object with multiple attached audio sources. Previously the effects were only applied to the first source, now the effects are instantiated per source (1241932)

  • Audio: OnAudioFilterRead does not work as expected with respect to the component enable checkbox (1338710)

  • Audio: One of two looping sounds sometimes disappears when removing High Pass Filter Component (1323353)

  • Consoles: Fix ArgumentOutOfRange Exception when selecting a Console log with long strings. (1340915)

  • Editor: Fixed a crash in ReorderableList while ensuring a valid array SerializedProperty. (1320319)

  • Editor: Fixed an issue where NonReorderable attribute were being ignored on derived class variables. (1331091)

  • Editor: Fixed an issue where the Mac editor could crash while running tests under sudo (1331434)

  • Editor: Fixed Editor texture streaming breaking after doing a build. (1327396)

  • Editor: Fixed lists inside lists not rendering elements after interaction. (1332688)

  • Editor: Fixed not being able to expand ReorderableLists while in inspector debug mode. (1316226)

  • Editor: Fixed slow Editor startup times when ShaderCache/EditorEncounteredVariants has grown too large. Also preventing it from growing too much. (1330453)

  • Editor: Fixes context-click for reorderable lists in the mac editor. (1313317)

  • Editor: InspectorWindow repaint has regressed between 2017.4 and 2019.4 (1320675)

  • Editor: Only one click is necessary to interact with game objects in play mode when clicking between multiple game views. (1327556)

  • Editor: Since the picking zones were increased for touch (tablet + finger) it seems that tablet users have trouble using scrollbars because the splitter gets in the way.
    The behavior is reverted. (1240329)

  • GI: 'PPtr cast failed when dereferencing! Casting from ScriptMapper to Texture!' when baking a second Reflection Probe in the Scene (1317164)

  • GI: Add a Gizmo for the Disc Light. (1273193)

  • GI: Fixed Light Probe Proxy Volumes on Automatic mode not being updated, when baked probe coefficients are changed in the editor while in play mode. (1265289)

  • Graphics: AttachmentDescriptor.ConfigureResolveTarget() screen flip fix when resolving to backbuffer (1327936)

  • Graphics: D3D12 player will not crash/freeze when switching between full screen modes (1318640)

  • Graphics: Encoding RFloat and RHalf to PNG, JPG or TGA now encodes to a grayscale image. (1325643)

  • Graphics: Fix issue with GrayScaleRGBToAlpha for 16bpc textures (1327917)

  • Graphics: Fix occasional error message if getting trail positions from script. (1335899)

  • Graphics: Fixed FrameDebugger to pause the frame fully when debugging session is active. (1315256)

  • Graphics: Fixed inconsistency in anisotropic level setting across temporary RenderTextures (1319319)

  • Graphics: When dynamic scaling is enabled and a Render Target is attached to a Camera the ScreenTo and ToScreen functions no longer use the scaled viewport size, instead match the behaviour when a Render Target isn't attached as per the documentation. (1329240)

  • IL2CPP: Avoid possible memory corruption when a generic field is of a type which has an explicit layout, and the generic type has another type with explicit layout as a field. (1337921)

  • IL2CPP: Correct crash when calling DynamicInvoke on a delegate returned from Marshal.GetDelegateForFunctionPointer() (1335306)

  • IL2CPP: Correct managed stack traces on PS5. (1333937)

  • IL2CPP: Fixed issue that would cause IL2CPP builds to fail when the project or build path contains unicode characters. (1341647)

  • IL2CPP: Prevent a required System.Uri constructor from being stripped in Medium or High stripping modes. (1338763)

  • IL2CPP: Prevent an crash in the runtime when a managed thread object that has been destroyed is used from a finalizer. (1341024)

  • IL2CPP: Properly handle unaligned reads and writes which occur in the System.Runtime.CompilerServices.Unsafe.dll assembly (among others) on ARMv7. (1343375)

  • iOS: Fix password input cleared on first character when touch keyboard input is hidden (1251498)

  • iOS: Fixed crash when using several Application.RequestUserAuthorization in coroutine (1323715)

  • iOS: Fixed video becoming unplayable after resuming an app when video's audio output mode is set to API Only. (1330901)

  • iOS: Stop swallowing input on native UITextField when using UaaL and Bluetooth keyboards. (1332925)

  • License: Fix Licensing Client signature check in the Editor

  • Linux: Backported fix for case 1318271. Fixed mouse reported mouse position being off the by size of the main menu bar in the y-axis (1318271)

  • Linux: Fixed issue where adding a new shortcut profile crashes the Editor. (1334874)

  • Networking: UnityWebRequest now supports gzip compression on Windows. (1343274)

  • Networking: UnityWebRequest: fix error in console when certificate handler is used. (1337750)

  • Package Manager: Fixed an issue where removing a project dependency using PackageManager.Client.Remove would throw an error when the project manifest has no dependencies property. (1324067)

  • Package Manager: Fixed issue where user can't view assets in Package Manager (error 400) (1330334)

  • Package Manager: Installing samples no longer throws a warning in the console. (1336144)

  • Package Manager: Removed function call traces from upm.log file. (1331947)

  • Particles: Fixed an occasional error message and invalid bounding box, when using the Collision Module in Planes mode. (1282268)

  • Physics: Clamp ArticulationBody mass when loading data from disk, so that it is within the valid range for the physics engine (1316719)

  • Physics: Corrected contact event behavior for the ArticulationBody component so that it matches Rigidbody component behavior. (1339908)

  • Physics: Fix a crash in "PhysicsScene2D::UpdateJoints()". (1342152)

  • Prefabs: Fixed cannot move/rotate/scale static objects in Prefab Mode when playing. (1343040)

  • Profiler: Fixed long running IJobs not showing up in the Profiler (1288665)

  • PS5: Fix a crash that can occur in ReadbackImage with a R8 texture format (1348451)

  • Scripting: Fix a rare crash in il2cpp.exe that could randomly happen under the right circumstances (1336887)

  • Scripting: Fix hang in UnityLinker that could happen processing a NullableAttribute (1339078)

  • Scripting: Fixed "GetResponseStream() errors when using CopyTo() method". (1337986)

  • Scripting: Fixed an AssemblyResolutionException from il2cpp about netstandard that could occur when an assembly contained SecurityPermission attributes. (1311865)

  • Scripting: Fixed an issue where [RuntimeInitializeOnLoad] was ignored when placed on nested and namespaced class. (962800)

  • Scripting: Fixed crash when closing the editor after a failed AssetBundle.LoadFromStreamAsync operation. (1331280)

  • Serialization: Fix UnityYAML parsing issue with a TextAsset containing JSON payload. (1334277)

  • Shaders: Fixed DIRECTIONAL being defined to nothing when no other light type is defined (1342654)

  • Shaders: Fixed line directives sometimes erroneously skipped in output by the caching preprocessor (1340531)

  • Shaders: Shaders are now reimported correctly when include directives are affected by shader keywords. (1333654)

  • Terrain: Fixed crash caused by setting TreeInstances on Terrain in between the time Terrains are culled and the time Trees are rendered (1317966)

  • UI: Backout a optimization of caching the change count where the layout is changed during a layout call. (1324089)

  • UI Toolkit: A panel remains responsive to user interactions even if it contains elements with huge dimensions. (1324728)

  • UI Toolkit: Fixed read only fields mouse dragger (1337002)

  • URP: Fixed a performance issue in Hololens when using renderer with custom render passes.

  • URP: Fixed ordering of subshaders in the Unlit Shader Graph, such that shader target 4.5 takes priority over 2.0.

  • WebGL: Fix playback of videos on iOS (1288692)

  • WebGL: Fixed a WebAssembly trap when a touch point got canceled on mobile devices. (1262657)

  • WebGL: Improved error messages that are printed when a build to WebGL fails. (1245847)

  • XR: Splash screen now sends correct zNear and zFar values to XRDisplaySystem (1349851)

  • XR: Updated OpenXR package to 1.2.3

  • XR: [OpenXR]Fix for Editor memory leak when HMD is in idle state (1344762)

System Requirements

For development

OS: Windows 7 SP1+, 10, 64-bit versions only; macOS 10.13+. (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.13+ 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.13+, Ubuntu 18.04+
    • Graphics card with DX10 (shader model 4.0) capabilities.
    • CPU: SSE2 instruction set support.
  • iOS player requires iOS 11.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


Third Party Notices

For more information please see our Open Source Software Licenses FAQ on the Unity Support Portal

We use cookies to ensure that we give you the best experience on our website. Visit our cookie policy page for more information.

Got it