Release notes

Known Issues in 2019.2.0a6 under investigation

  • 2D: [SpriteEditor] Sprite is not sliced accurately into multiple sprites when Type is set to Automatic (1129386)

  • Android: Application crashes when launched on Android devices with Android 6 and lower (1127704)

  • Asset Import: Editor crashes on selecting a texture preset with different settings (1123752)

  • IL2CPP: Application crash on startup when building with IL2CPP scripting backend (1121989)

  • Scripting: DLL does not update and "MissingMethodException" error is thrown when accessing the obsolete code from script (1108911)

New 2019.2.0a6 Entries since 2019.2.0a4

Features

  • Android: Added "Optimized Frame Pacing" feature.

  • GI: Added support for the cross-platform Intel lightmap denoiser. Intel Open Image Denoise can produce smooth noise free lightmaps with few samples.

  • iOS: Aded Client/Worker Multithreaded Rendering support for OpenGL ES 2 and 3.

  • Package Manager: - Added possibility to hide/show Packages in the Project Browser and Object Picker, depending on the package type set in its manifest:

    • If the package type is "tool" or "library", it will be hidden by default, otherwise it will be visible.
    • If the package manifest contains boolean attribute "hideInEditor", this value overrides the visibility set by package type.
    • Added button in Project Browser and Object Picker to toggle package visibility (include/exclude hidden packages).
    • Added package type property and hideInEditor advanced property in the Package manifest Inspector.
  • Scripting: Added support for Assembly Definition Reference Files (asmref). These allow for adding additional source code directories to an existing Assembly Definition File (asmdef).

  • UI Elements: Added Windows -> UI -> UIElements Samples Window, providing quick UIElements code snippets in the Editor.

Backwards Compatibility Breaking Changes

  • Facebook: Added deprecation warning for Facebook Gameroom platform, which will cease to be supported in a future release.

  • Prefabs: Prefabs created by dragging into the hierarchy are now parents to the correct parent, instead of being a root object. The correct parent will thus be set in Awake calls.

Improvements

  • 2D: Added Tile Palette Restore Edit Mode Active Target in Preferences to specify whether the Edit Mode Active Target is reset to the original in Edit Mode or a changed target in Play Mode. (1116470)

  • Android: Added the ability to opt-out from (i.e. cancel) stopping gradle daemons. (1098578)

  • Android: Small reduction in job overhead when few cores are being used.

  • Animation: Added a right-click menu option to jump to a specific AnimatorController State while liveLinked.

  • Asset Import: Added an option in the model importer to prevent game objects from being sorted by name in imported game object hierarchies.

  • Asset Import: Added Undo/Redo support by default in AssetImporter inspectors.

  • Asset Import: Deselection with AssetImporter now shows a Apply/Revert/Cancel popup instead of Apply/Revert. The new Cancel option is the default when pressing or closing the popup, which restores the current selection keeping the non-applied changes.

  • DX12: Improved performance of async texture loading in DX12 to avoid a rendering stall when 2D textures are created.

  • Editor: Added Araxis Merge support on Revision Control Diff/Merge tool.

  • Editor: Added new options for expanding/collapsing the components in the inspector context menu.

  • Editor: Metal: The RenderDoc capture button in the Scene/Game view now works with the Xcode frame debugger: requires launching Unity through Xcode with Metal frame capture enabled.

  • Editor: Moved Camera Easing options from Preferences to Camera Settings in SceneView.

  • Editor: The Shortuct Manager window can now be resized horizontally.

  • Graphics: SRP batcher is now supported on OpenGL 4.2+ and OpenGL ES 3.1+.

  • iOS: Added new iOS device (released in 2018) identification support to the Profiler.

  • iOS: Added LowPowerModeEnabled and WantsSoftwareDimming properties to iOS.Device and a Brightness Property to Screen (currently only supported on iOS).

  • iOS: ReplayKit improvements:

    • For local recordings, we can now capture the local camera, microphone, and screen.
    • The size of the preview window overlay can now be adjusted.
    • Added ReplayKit.isPreviewControllerActive, ReplayKit.PauseBroadcasting, and ReplayKit.ResumeBroadcasting.
  • Package Manager: It is now possible to include built-in module packages in the project as dependencies of other packages.

  • Plugins: Added Unity Companion license to the Plugin API header.

  • Timeline: Timeline read-only mode when timeline asset is not editable (file readonly flag or by source control).

  • UI Elements: Performance improvements in UIElement rendering.

  • UI Elements: Removed unnecessary, duplicated MD type documentation from the source code.

API Changes

  • Android: Added support for JNI Weak References (AndroidJNI class).

  • Asset Import: Added API in model importer to prevent game objects from being sorted by name in imported game object hierarchies.

  • Editor: (Also mentioned under Fixes) Replaced EditorTool.OnActivate and OnDeactivate methods with events on EditorTools, addressing callback order problems.

  • Editor: Added API for Scene Visibility.

  • Editor: Added more API points for TransformHandle to permit granular control over which handles appear.

  • Editor: Renamed SceneView.SceneViewCameraSettings to SceneView.CameraSettings.

  • Graphics: - Changed the SRP signature of BeginCameraRendering and BeginFrameRendering to give access to the ScriptableRenderContext.

    • Added callbacks for end camera and end frame rendering.
  • Package Manager: Added Editor API for retrieving Package information based on an asset path or an assembly:

    • PackageManager.PackageInfo.FindForAssetPath(string assetPath)
    • PackageManager.PackageInfo.FindForAssembly(Assembly assembly)
  • Scripting: Added UnityEditor.TypeCache API for fast extraction of derived types, methods or classes marked with an attribute.

  • Video: VideoClipImporter and VideoClip now have a sRGBClip and sRGB property, respectively, to describe whether content is sRGB or linear.

Fixes

  • 2D: Fix to clean up Preview Tiles when painting on a Tilemap when an asset is saved. (1117888)

  • 2D: Fixed case of Editor crashing on WorldContactFilter2D::ShouldCollide when trying to destroy Tilemap. (1123489)

  • 2D: Fixed case of Editor throwing "GetGfxDevice() should only be called from main thread" errors and eventually crashing when in Play Mode. (1110007)

  • 2D: Fixed case of Tile Animation showing a wrong Sprite when Tilemap is deactivated and reactivated. (1115699)

  • 2D: Fixed case of sprite.textureRect returning values for master SpriteAtlas instead of SpriteAtlas Variant. (1115285)

  • 2D: Fixed Crash in FitBlockMaskInBlockMaskUsingPadding when packing a Sprite Atlas with blockOffset value set to 0. (1121583)

  • 2D: Fixed issue where Tilemap Collider Physics Shape/s were not updating when a single Tile was removed. (1123140)

  • 2D: Fixed NullReferenceException when painting with a Tile Palette without a valid Tilemap component. (1120310)

  • 2D: We now use Grid Cell Layout instead of Tile Orientation for doing Grid Cell picking when painting on a Tilemap. (1119051)

  • Android: Fixed hang at exit if submitting AndroidJavaProxy/Runnable to UI thread. (1113139)

  • Android: Fixed issue where video would fail to start to play in the app on Android OS v4.1 or v4.2. (1121070)

  • Android: Fixed issues selecting a keystore to sign Android applications with. (1117286)

  • Android: Fixed several issues relating to finding Android SDK components and app signing.

  • Android: Fixed Vulkan rendering when sRGB write control is enabled in PlayerSettings. (1107481)

  • Android: Fixed Application.Unload crash on Android P devices. (1120794)

  • Animation: Fixed crash when parenting a GameObject during an AnimationEvent. (1115423)

  • Asset Import: Fixed incorrect import of BC6H format textures where the source bitmap contained negative zero values. (1049552)

  • Asset Import: Fixed regression resulting in invalid references when importing subscenes. (1120940)

  • Asset Import: Scripted Importers now support generating prefabs with NestedPrefabs as output.

  • Asset Pipeline: Fixed crash when reading a meta file with a "Byte Order Mark". (1122521)

  • Audio: Removed "raw speaker mode" option from Project Settings for audio, as it was never usable and made the matching enum value obsolete. (1062387)

  • Build Pipeline: Fixed an issue where ContentBuildInterface.GenerateAssetBundleBuilds() was not returning assets in folders. (1123897)

  • Build Pipeline: Fixed crash when there was an incomplete version of cached player data stored prior to a scripts-only build. (1114580)

  • Build Pipeline: Fixed rare data corruption when building asset bundles with LZMA compression. (1118331)

  • Editor: (Also mentioned under API changes) Replaced EditorTool.OnActivate and OnDeactivate methods with events on EditorTools, addressing callback order problems. (1120844)

  • Editor: Fixed an issue where folder would lose focus after renaming it in the Project Window. (1124103)

  • Editor: Fixed case of compile errors not always being cleared correctly when moving the .cs file from one .asmdef folder to another. (1121925)

  • Editor: Fixed case of compile errors not being cleared correctly in some cases when moving and removing .asmdef files. (1120835)

  • Editor: Fixed case of Edit button being stuck in enabled state. (1120360)

  • Editor: Fixed case of EditorToolbarForTarget drawing tools multiple times. (1120077)

  • Editor: Fixed case of locked inspector editors not receiving OnSceneGUI callbacks. (1124741)

  • Editor: Fixed case of Terrain Inspector controls becoming unresponsive under certain conditions (e.g. when asembly rebuilt). (1107487)

  • Editor: Fixed case where EditorTool could be created with an incorrect target property. (1120845)

  • Editor: Fixed error in ScriptExecutionOrder Editor when exiting play mode. (1119209)

  • Editor: Fixed incorrect refreshing of the render pipeline in SRP when changing texture quality. (1053855)

  • Editor: Fixed issue related to Generic Menu's incorrect insertion of child menu items if parent item name terminates with a space character. (1116792)

  • Editor: Fixed issue where an undocked window/pane would sometimes stay in front of other apps on macOS. (1115348)

  • Editor: Fixed issue where the test runner would not reopen the original scene after running playmode test. (1118111)

  • Editor: Fixed issue with predefined assemblies (Assembly-CSharp.dll and friends) getting recompiled when modifying an Assembly Definition File assembly with "Auto Reference" disabled. (1124266)

  • Editor: Fixed issue with predefined assemblies (Assembly-CSharp.dll and friends) getting recompiled when modifying an Assembly Definition File assembly with "Test Assemblies" enabled. (1082290)

  • Editor: Fixed issue with shader and shader category being ticked in the drop down when they have the same name. (1113522)

  • Editor: Fixed potential crash when calling Editor.CreateEditor with a type that does not derive from UnityEditor.Editor. (1119535)

  • Editor: Fixed resize borders on floating windows to better expose window controls. This also fixes an issue where resize was triggered when dragging from other parts of the window when gaining focus. (1116567)

  • Editor: Fixed slow performance when using UIElements ViewData persistence. (1117599)

  • Editor: GraphView: Fixed delay when dragging end cap of edge.

  • Editor: Improved logging when loading scenes: you will now be able to see a breakdown of where time was spent during scene load operations in the Editor.

  • Editor: Renamed MeshRenderer Priority in the Editor to match documentation.

  • Editor: Unity Test Runner: Fixed issue where tests would timeout early when using large Timescale values. (1098090)

  • Editor: Vulkan Editor: Fixed validation errors regarding invalid swapchain sizes when creating Editor windows. (1085277)

  • GI: Fixed case of incorrect URL being shown in the UV overlap warning message. (1122952)

  • GI: Fixed case of missing lighting when baking with GPU lightmapper. (1121705)

  • GI: Fixed issue where probes had corrupted gizmos when they had 1 static object in the scene. (1123892)

  • GI: Fixed issue where selecting probe groups crashed Editor when using Metal (OSX). (1123971)

  • GI: Fixed missing bounce off transmissive surfaces. (1061354)

  • GI: Moved LightmapResolutionOverlay from Scene settings to Editor settings.

  • GI: Refactored the UI for all Renderers and added new grouped headers.

  • Graphics: Added an API to cull objects based on their static flags while rendering a camera into a cubemap (Editor Only).

  • Graphics: Fixed a rare crash where instancing properties were absent from the MaterialPropertyBlock object sent to DrawMeshInstanced calls. (1115627)

  • Graphics: Fixed BC6H crash. (1115196)

  • Graphics: Fixed case of "CPU fence is invalid or very old!" error message being issued. (1122971)

  • Graphics: Fixed case of 16-bits format being disabled for RenderTexture. (1115197)

  • Graphics: Fixed case of sRGB RenderTexture failing to be created when enableRandomWrite is on. (1115223)

  • Graphics: Fixed case of texture inspector label duplicating sRGB. (1117187)

  • Graphics: Fixed crash when calling Graphics.ExecuteCommandBuffer() if CommandBuffer.SetShadowSamplingMode() was called prior. (1102773)

  • Graphics: Fixed issue where a warning would be issued when decompressing ETC textures on OSX Editor with Android build target. (1115543)

  • Graphics: Fixed runtime shader load time regression, especially with multiple subshaders. (1105268)

  • Graphics: Improved RenderTexture asset UI to store the user-requested format. (1115203)

  • Graphics: OpenGL & Vulkan: Fixed shader code generation for InterlockedMax(). (1124926)

  • Graphics: Resolved case of broken XR SDK platform. (1124527)

  • Graphics: Vulkan: "Attempting to draw with missing bindings" is now a warning instead of an error. (1100647)

  • Graphics: Vulkan: Fix for visual flickering when editing mesh data from script when graphics jobs are in use. (1075277)

  • Graphics: Vulkan: Fixed async readback performance. (1123745)

  • Graphics: Vulkan: fixed case of missing draws when using an uninitialized RenderTexture. (1107219)

  • Graphics: Vulkan: Fixed crash if the scene does not contain any cameras. (1067621)

  • Graphics: Vulkan: Fixed crash when using MSAA.

  • Graphics: Vulkan: Fixed missing draws when using an uninitialized RenderTexture. (1107219)

  • IL2CPP: Fix to correctly indicate that IPv6 is not supported on non-IPv6 platforms. (1108823)

  • IL2CPP: Fix to correectly generate code using the in modifier for parameters on abstract methods in a generic type. (1103142)

  • IL2CPP: Fix to generate proper C++ code for an out parameter used as SizeParamIndex. (1115412)

  • IL2CPP: Fix to load field addresses via unsigned native integer types correctly. (1104370)

  • IL2CPP: Fix to prevent a crash with the .NET 4.x equivalent scripting runtime, that could occcur when an enum is nested in a generic type. (1113091)

  • IL2CPP: Fix to prevent an exception during IL2CPP code conversion that could happen with Trace statements in some cases. (1120880)

  • IL2CPP: Fixed crash during managed code stripping when system language is Turkish. (1083122)

  • IL2CPP: Fixed handling of null explicitly casted to an array and indexed. (1115145)

  • IL2CPP: Fixed invoking IEnumerable.GetEnumerator method on COM objects that implement the Windows.Foundation.Collections.IIterable interface. (878766)

  • IL2CPP: Improved the performance of WaitOne, WaitAny, and WaitAll on Windows platforms. (1111339)

  • iOS: Fix to mantain plugin paths relative to the Unity project when copying them to the Xcode project. (1108970)

  • iOS: Fix to respect default values from Settings.bundle. (1115533)

  • iOS: Fixed build failure when Xcode DerivedData path was set relative to the project. (1117371)

  • iOS: We no longer override Xcode framework search paths setting when appending Xcode project. (703217)

  • iOS: We no longer stop background when launching a Unity app if 'Mute Other Audio Sources' is turned off. (1115948)

  • Linux: Fix for multiple identical webcams. (1115884)

  • Linux: Fixed crash on Editor startup when using -force-vulkan. (1109529)

  • Linux: [Mouse][Editor] Fixed issue where mouse position on the New Input System (which is a preview package at present) was inconsistent with that on the current input system. (1114148)

  • Lumin: Fixed error preventing running playmode tests on a Lumin device.

  • OSX: Fixed case of Mac Editor shipping with debug info unstripped. (1070559)

  • OSX: Fixed issue where older Macs could incorrectly report that they support GPU instancing. (1092899)

  • Package Manager: Fixed issue where it was not possible to open a scene if the folder name of a local package and the project folder name had the same initial characters. (1117768)

  • Physics: Fix to disallow zero bounds being passed to Physics.RebuildBroadphaseRegions. (1051407)

  • Physics: Fix to ensure that ContactPoint2D and Collision2D types do not get stripped (causing a crash). (1121995)

  • Physics: Fixed a GJK issue that returned incorrect normals when a primitive's centre was close to the surface of a convex (affected Physics.ComputePenetration). (1115449)

  • Physics: Fixed case of multithreaded joint constraints not working when there are no contacts in the contact island. (1109272)

  • Physics: Fixed case of the force limits of ConfigurableJoint drives being expressed in incorrect units. (1116513)

  • Physics: Fixed case of the reset editor button actually not resetting the Collider's trigger property. (1093243)

  • Physics: Fixed case of MeshCollider not following the changes to a mesh after it produced an empty geometry. (996035)

  • Physics: Fixed incorrect collision detection between CapsuleCollider2D and CircleCollider2D when the capsule is oriented towards the center of the circle. (1119018)

  • Physics: Fixed spelling error in the physics settings, renamed Default Max Angular Speed. (1104527)

  • Player: Fixed case of temp doc .xml files being present in standalone desktop player builds. (1112215)

  • Player: [Windows] Maximizing the player in the windowed mode sets it to Maximized Window mode. (1085673)

  • Prefabs: Fixed case of references in scene getting lost when modifying a Prefab. (1116476)

  • Prefabs: Fixed crash when entering play mode while having a locked inspector on a GameObject with AudioSource. (1114376)

  • Prefabs: Fixed crash when passing invalid paths to PrefabUtility.LoadPrefabContents. (1116603)

  • Scripting: Fix to ignore files outside of an assembly description.

  • Scripting: Fixed crash when a GameObject instantiates a new GameObject on the parent during the OnDestroy callback and the whole hierarchy is being destroyed. (1121506)

  • Scripting: Fixed issue where, when serializing an object with null fields using ToJson(), the fields in the source object were modified. (942547)

  • Scripting: Fixed memory leak in TLS connections, affecting Windows/Linux/Mac/UWP (1121523)

  • Scripting Upgrade: Fixed crash in Marshal.PtrToStructure with generic struct. (1106422)

  • Scripting Upgrade: Fixed crash when a method has Task return type. (1111048)

  • Scripting Upgrade: Fixed crash when delegate constructor is invoked with NULL method. (1091693)

  • Scripting Upgrade: Fixed sizes for System.Numerics types. (1118631)

  • SpeedTree: Fixed collision object importing from SpeedTree v8 assets.

  • Terrain: Fixed blending artifacts when painting 5 or more terrain materials. (1104291)

  • Timeline: Changed behaviour of the Timeline Window to apply modifications immediately during Playmode. (922846, 1111908)

  • Timeline: Clip edit mode clutch keys will no longer get stuck when holding multiple keys simultaneously. (1097216)

  • Timeline: Clip inspector will no longer throw exceptions when changing values when the inspector is locked. (1115984)

  • Timeline: Fixed an issue where a circular reference warning appeared in the Control Clip inspector even if there was no circular reference. (1116520)

  • Timeline: Fixed appearance of muted tracks. (1018643)

  • Timeline: The PlayableDirector.played event is now called after entering or exiting Playmode. (1088918)

  • Timeline: Undoing a paste track operation in a group will no longer corrupt the timeline. (1116052)

  • UI: Fixed case of memory allocation happening every frame in CanvasScaler.Update(). (1105332)

  • UI: Fixed case of CanvasGroup.Alpha not affecting a nested Canvas's UI elements. (1109916)

  • UI: Fixed issue in the Image component inspector, which would break undo when a sprite was replaced. (1114240)

  • UI: Fixed issue where canvas elements positions were set to NAN when the camera orthographic size was set to 0 and did not reset to valid positions when the orthographic size was changed again. (1121834)

  • UI: Fixed issue where enabling canvas and polling its RectTransform data in Awake/Start would return incorrect values for root RectTransforms.

  • UI: Fixed issue with UI Scrollbar blocking prefab mode. (1115796)

  • UI: Fixing issue with RecTransform.position not being correct is polled in Start or Awake (1117790)

  • UI Elements: Corrected layout problem leading to the field input text having its border clipped. (1105567)

  • UI Elements: Fixed broken edge expansion system and tesselation.

  • UI Elements: Fixed case of Exception being thrown on screen resolution change. (1104793, 1114266)

  • UI Elements: Fixed case of Material Editor (Inspector) constant repaint. (1111923)

  • UI Elements: Fixed case of the Toolbar search Cancel button not being shown correctly. (1115354)

  • UI Elements: Fixed issue where the context menu Cut/Paste options would make the internal state of a TextField lose synchronization with their internal value. (1120588)

  • UI Elements: Fixed issue where the gradient field didin't show the alpha checker. (1118985)

  • UnityLinker: Fixed Managed Stripping Level when used with Android and mono backend. (1111490)

  • Universal Windows Platform: Fixed build failure in generated VS project due to duplicate Extension nodes in the appx manifest. (1123172)

  • Universal Windows Platform: Fixed case of IL2CPP crashing when using certain new types (like Windows.Foundation.GuidHelper.Equals) in Windows SDK 17763 or newer.

  • Universal Windows Platform: Fixed incorrect mouse position when using the New Input System (preview package at this time). (1091493)

  • Universal Windows Platform: Fixed rapid triggering of OnClick() events in UI when multiple Xbox controllers connected. (1099111)

  • Video: Fixed case of non-360 3D video being rendering with glitches (vertical colour bands). (1098079)

  • WebGL: Fixed Build&Run when Wasm Streaming option is enabled. (1104514)

  • Windows: Fixed case of Multidisplay always reverting to native resolution on primary display. (1040726)

  • XR: Fixed case of Vulkan instance extensions not being applied on Oculus. (1123193)

  • XR: Fixed stereo rendering support functions for shaders that must be written in GLSL. (1080662)

Preview of Final 2019.2.0a6 Release Notes

System Requirements Changes

Nothing changed.

Features

  • Android: Added "Optimized Frame Pacing" feature.

  • Android: Android App Bundles: Added APK files size validation when generated AAB file is larger than some threshold

  • Editor: Visual Studio (Windows): Double clicking on C# compile messages in the console window will now open the corresponding C# file at both line and column, previously only at the line.

  • Editor: Visual Studio Code: Double clicking on C# compile messages in the console window will now open the corresponding C# file at both line and column, previously only at the line

  • GI: Added support for the cross-platform Intel lightmap denoiser. Intel Open Image Denoise can produce smooth noise free lightmaps with few samples.

  • GI: GPU agnostic lightmap denoiser that works across all our editor platforms.

  • iOS: Aded Client/Worker Multithreaded Rendering support for OpenGL ES 2 and 3.

  • Package Manager: - Added possibility to hide/show Packages in the Project Browser and Object Picker, depending on the package type set in its manifest:

    • If the package type is "tool" or "library", it will be hidden by default, otherwise it will be visible.
    • If the package manifest contains boolean attribute "hideInEditor", this value overrides the visibility set by package type.
    • Added button in Project Browser and Object Picker to toggle package visibility (include/exclude hidden packages).
    • Added package type property and hideInEditor advanced property in the Package manifest Inspector.
  • Scripting: Added support for Assembly Definition Reference Files (asmref). These allow for adding additional source code directories to an existing Assembly Definition File (asmdef).

  • UI Elements: Added Windows -> UI -> UIElements Samples Window, providing quick UIElements code snippets in the Editor.

Backwards Compatibility Breaking Changes

  • Android: Raise minimum Vulkan API version for Adreno drivers to 1.0.38.

  • Editor: UGui Objects are now using ObjectFactory and default Presets when created from the GameObject menu in the Editor.

  • Facebook: Added deprecation warning for Facebook Gameroom platform, which will cease to be supported in a future release.

  • Graphics: When using SRP, added Rendering Layer Mask to Lights as a filtering option during shadow passes (similar to Renderers Rendering Layer Masks).

  • Scripting: Make the GarbageCollector.GCMode property only throw an exception on unsupported platforms when trying to change it's value, not when reading it.

Changes

  • Android: Bundletool is updated up to version 0.7.2.

Improvements

  • Android: Added the ability to opt-out from (i.e. cancel) stopping gradle daemons. (1098578)

  • Android: Mimic TouchScreenKeyboard.hideInput by drawing input field outside the screen, when this property is true.

  • Android: Small reduction in job overhead when few cores are being used.

  • Animation: Added a right-click menu option to jump to a specific AnimatorController State while liveLinked.

  • Asset Import: Added Undo/Redo support by default in AssetImporter inspectors.

  • Asset Import: Compressor Quality can now be set in the texture asset import settings for BC6H and BC7 formats allowing compression quality to be traded for import speed.

  • Asset Import: Deselection with AssetImporter now shows a Apply/Revert/Cancel popup instead of Apply/Revert. The new Cancel option is the default when pressing or closing the popup, which restores the current selection keeping the non-applied changes.

  • DX12: Improved performance of async texture loading in DX12 to avoid a rendering stall when 2D textures are created.

  • Editor: Added a message box whenever the OS fails to delete an asset when deleted from the Project Browser view.

  • Editor: Added Araxis Merge support on Revision Control Diff/Merge tool.

  • Editor: Added new options for expanding/collapsing the components in the inspector context menu.

  • Editor: Metal: The RenderDoc capture button in the Scene/Game view now works with the Xcode frame debugger: requires launching Unity through Xcode with Metal frame capture enabled.

  • Editor: Reduced the number of key presses in order to start a rebind in the Shortcut manager (from 3 to 2).

  • Editor: The Shortuct Manager window can now be resized horizontally.

  • GI: Added a 'None' mode for emissive GI contribution in the standard shader GUI.

  • GI: Reduced GPU memory footprint for GPU lightmapper when baking lighting, by compressing normal vectors and albedo.

  • GI: The Optix AI denoiser is now supported with GPU Lightmapper.

  • GI: Upgraded Optix AI Denoiser to version 6. This new version has better performance and a lower memory footprint.

  • Graphics: Added support for Dynamic Resolution Scaling to the Lightweight Rendering Pipeline.

  • Graphics: Metal: Defer creation of command buffers and render encoders until actually needed.

  • Graphics: SRP batcher is now supported on OpenGL 4.2+ and OpenGL ES 3.1+.

  • Graphics: SRP batcher is now supported on Xbox, DirectX11.

  • Graphics: SRP hooks added for detail rendering shaders.

  • iOS: Added new iOS device (released in 2018) identification support to the Profiler.

  • iOS: Added LowPowerModeEnabled and WantsSoftwareDimming properties to iOS.Device and a Brightness Property to Screen (currently only supported on iOS).

  • iOS: ReplayKit improvements:

    • For local recordings, we can now capture the local camera, microphone, and screen.
    • The size of the preview window overlay can now be adjusted.
    • Added ReplayKit.isPreviewControllerActive, ReplayKit.PauseBroadcasting, and ReplayKit.ResumeBroadcasting.
  • Package Manager: It is now possible to include built-in module packages in the project as dependencies of other packages.

  • Plugins: Added Unity Companion license to the Plugin API header.

  • ps4: Improved PS4 Additional content to support multiple products.

  • Scripting: Enable incremental Garbage Collection in editor.

  • Shaders: Moved 38 builtin keywords to local keywords. Shaders inspector now shows used global/local keywords by shader.

  • Timeline: Timeline read-only mode when timeline asset is not editable (file readonly flag or by source control).

  • XR: Move Google VR Cardboard and Daydream support to a package and Update to verision 1.180.

API Changes

  • Android: Added support for JNI Weak References (AndroidJNI class).

  • Asset Import: Added API in model importer to prevent game objects from being sorted by name in imported game object hierarchies.

  • Editor: (Also mentioned under Fixes) Replaced EditorTool.OnActivate and OnDeactivate methods with events on EditorTools, addressing callback order problems.

  • Editor: Added API for Scene Visibility.

  • Editor: Added AssemblyBuilder.referencesOptions to allow building assemblies using UnityEngine module .dlls instead of the default monolithic UnityEngine.dll.

  • Editor: Added AssetDatabase.OpenAsset() overloads that take both a line number and column number.

  • Editor: Added GameObjectUtility.GetMonoBehavioursWithMissingScriptCount and GameObjectUtility.RemoveMonoBehavioursWithMissingScript to be able to remove MonoBehaviours with a missing script from a game object.

  • Editor: Added more API points for TransformHandle to permit granular control over which handles appear.

  • Editor: Added new API to detect & control async shader compilation better in the Editor.

  • Editor: OnOpenAsset attribute now supports method signature (int instanceId, int line, int column)

  • Editor: Renamed SceneView.SceneViewCameraSettings to SceneView.CameraSettings.

  • GI: Fixed issue where we can't set Lightmap Parameters from script on non-prefab objects. (966408)

  • Graphics: - Changed the SRP signature of BeginCameraRendering and BeginFrameRendering to give access to the ScriptableRenderContext.

    • Added callbacks for end camera and end frame rendering.
  • Graphics: Add static function to Matrix4x4 to compute inverse of an affine matrix

  • Mobile: Add 'Screen.cutouts' to get display cutout bounding boxes

  • Mobile: Application.absoluteURL property and Application.deepLinkActivated event to handle application activation via deep link, implemented for Android/iOS/UWP

  • Package Manager: Added Editor API for retrieving Package information based on an asset path or an assembly:

    • PackageManager.PackageInfo.FindForAssetPath(string assetPath)
    • PackageManager.PackageInfo.FindForAssembly(Assembly assembly)
  • Scripting: Added UnityEditor.TypeCache API for fast extraction of derived types, methods or classes marked with an attribute.

  • Terrain: Added new callback APIs to monitor the terrain texture changes:

    • TerrainAPI.TerrainCallbacks.heightmapChanged
    • TerrainAPI.TerrainCallbacks.textureChanged These callbacks tell both the rect region being changed and if the change is CPU synchronized or not (i.e. GPU only).
  • Terrain: Added new TerrainData APIs for easier modifying the terrain textures:

    • TerrainData.CopyActiveRenderTextureToHeightmap
    • TerrainData.CopyActiveRenderTextureToTexture These two may be used for copying the content of the active RT into the terrain textures, optionally delaying the CPU synchronization, for instance at the event of mouse move in the middle of painting.

    • TerrainData.DirtyHeightmapRegion

    • TerrainData.DirtyTextureRegion These two may be used alternatively to the two functions above if the user directly changes the GPU resources by other means.

    • TerrainData.SyncHeightmap

    • TerrainData.SyncTexture These two may be used to do a full synchronization from GPU to CPU, for instance at the event of mouse up.
  • Terrain: Deprecate Terrain.ApplyDelayedHeightmapModification. Use TerrainData.SyncHeightmap instead.

  • Terrain: Deprecate TerrainData.UpdateDirtyRegion. Use TerrainData.DirtyHeightmapRegion instead.

  • Timeline: Exposed FootIK option on Timeline Animation Clips (1115652)

  • Video: VideoClipImporter and VideoClip now have a sRGBClip and sRGB property, respectively, to describe whether content is sRGB or linear.

Fixes

  • 2D: Editor crashes when spriteshape with one sprite on a single angle in scene closes the angle. (1115439)

  • 2D: Fixed case of Editor throwing "GetGfxDevice() should only be called from main thread" errors and eventually crashing when in Play Mode. (1110007)

  • 2D: Fixed case of sprite.textureRect returning values for master SpriteAtlas instead of SpriteAtlas Variant. (1115285)

  • 2D: Fixed Crash in FitBlockMaskInBlockMaskUsingPadding when packing a Sprite Atlas with blockOffset value set to 0. (1121583)

  • 2D: PSB files do not get packed when added to Sprite Atlas. (1114959)

  • Android: Fixed "DllNotFoundException: MonoPosixHelper" exception being thrown when MonoPosixHelper APIs are used. (1045644)

  • Android: Fixed problem with crash when using Android JNI methods from custom thread. (545977)

  • Android: Handle geometry working set out-of-memory when using Vulkan on Mali GPUs. (1056056)

  • Android: Now the same sign config is being used for both release and debug configurations. (1109570)

  • Asset Import: Fixed incorrect import of BC6H format textures where the source bitmap contained negative zero values. (1049552)

  • Asset Pipeline: Fixed crash when reading a meta file with a "Byte Order Mark". (1122521)

  • Audio: Fixed a potential crash when resetting a group's properties in the Audiomixer. (1097134)

  • Audio: Removed "raw speaker mode" option from Project Settings for audio, as it was never usable and made the matching enum value obsolete. (1062387)

  • Build Pipeline: Fix error when loading an object from an asset bundle on the first frame of a scene load operation under certain conditions. (1094045)

  • Editor: 0 Item GenericMenu throws Error while in Play mode. (1110510)

  • Editor: Debug.LogException will correctly be shown in Editor console when received from the player. (1103744)

  • Editor: Exception is not handled properly in PlayTests when a custom Enumerator is used as a Coroutine and throws an Exception (1111243)

  • Editor: Fix assertion message 's2 != NULL' in log files.

  • Editor: Fix editor crash while saving a scene with missing script. (1111432)

  • Editor: Fix issue with FilePathAttribute constructor throwing exception if called from MonoBehaviour constructor or another thread. (1077857)

  • Editor: Fix splitter view layout and resizing rounding issues. (1099360)

  • Editor: Fix: Copying and pasting selected text copies an additional letter that is not selected (1107289)

  • Editor: Fixed "Add Component" popup window not receiving focus in Linux editor. (1098140)

  • Editor: Fixed an issue where Editor throws Enum errors while displaying nested serialized Unity Events. (1053465)

  • Editor: Fixed an issue where folder loses focus after renaming it in the Project Window. (1114527)

  • Editor: Fixed case of Edit button being stuck in enabled state. (1120360)

  • Editor: Fixed editor hang when batch processing sprites with asterisks in file name. (1106232)

  • Editor: Fixed error in ScriptExecutionOrder Editor when exiting play mode. (1119209)

  • Editor: Fixed flicker/jumping that occured when dragging floating windows in linux editor. (1102805)

  • Editor: Fixed incorrect refreshing of the render pipeline in SRP when changing texture quality. (1053855)

  • Editor: Fixed issue related to Generic Menu's incorrect insertion of child menu items if parent item name terminates with a space character. (1116792)

  • Editor: Fixed issue where shift+tab in linux where shift+tab activated the last active window instead of the last active element. (1107323)

  • Editor: Fixed issue where the test runner would not reopen the original scene after running playmode test. (1118111)

  • Editor: Fixed issue with shader and shader category being ticked in the drop down when they have the same name. (1113522)

  • Editor: Fixed potential crash when calling Editor.CreateEditor with a type that does not derive from UnityEditor.Editor. (1119535)

  • Editor: Fixed resize borders on floating windows to better expose window controls. This also fixes an issue where resize was triggered when dragging from other parts of the window when gaining focus. (1116567)

  • Editor: Fixed resizing called from managed code in linux editor. (1104108)

  • Editor: Fixed slow performance when using UIElements ViewData persistence. (1117599)

  • Editor: Fixed the Unhandled Group assertion message. (1109197)

  • Editor: Fixes holdover of alt modifier in the editor when gaining focus for Linux editor from alt+tab (1104979)

  • Editor: Focus the settings window after it has been shown. (1110475)

  • Editor: Improve project generation time. (1111543)

  • Editor: Incorrect error dialog appears when trying to attach script with spaces in name. (1106237)

  • Editor: Linux editor now supports multiple checkable items in a submenu. (1092501)

  • Editor: Rename UI Transparency Priority to Renderer Priority in MeshRenderer component.

  • Editor: Renamed MeshRenderer Priority in the Editor to match documentation.

  • Editor: Renaming "Logging" preference in "Stack Trace" to avoid confusion. (1118914)

  • Editor: Support menu trees in EditorTool context menu.

  • Editor: Support new toolbox format for Rider.

  • Editor: Unity Test Runner: Fixed issue where tests would timeout early when using large Timescale values. (1098090)

  • Editor: Update Undo to return Prefab instances with missing assets to previous state correctly. (1056446)

  • GI: Fix issue with Total Bake Time is shown as 0:00:00 in Progressive Lightmapper after a bake in some cases. (1095980)

  • GI: Fixed case of incorrect URL being shown in the UV overlap warning message. (1122952)

  • GI: Fixed experimental custom bake API.

  • GI: Fixed hashing issue when writing out AO textures for PLM.

  • GI: Fixed issue where probes had corrupted gizmos when they had 1 static object in the scene. (1123892)

  • GI: Fixed issue where selecting probe groups crashed Editor when using Metal (OSX). (1123971)

  • GI: Fixed missing bounce off transmissive surfaces. (1061354)

  • GI: GPU lightmapper: Handle out of memory gracefully when BVH doesn't fit in GPU memory. This can happen when baking a terrain with high heightmap resolution.

  • GI: GPU Lightmapper: Stabilize result in various cases (compositing parameters changed, sample count changed, having 2 bounces or more). (1099004)

  • GI: Renamed "Auto Bake On/Off" to "Auto Generate Lighting On/Off" in the app bar.

  • Graphics: Editor crashes at MaterialScripting::Lerp when Renderer.material.Lerp() has a null material. (1117775)

  • Graphics: Fix crash when stripping Umbra module on platforms supporting native code stripping. (1116487)

  • Graphics: Fix fo texture atlas generation when a detail mesh material does not contain a valid texture. (776013)

  • Graphics: Fix for crashes or incorrect display when updating mesh data from script when using Vulkan and graphics jobs. (1090932)

  • Graphics: Fixed crash when calling Graphics.ExecuteCommandBuffer() if CommandBuffer.SetShadowSamplingMode() was called prior. (1102773)

  • Graphics: Fixed the missing geometry shader output interpolation qualifier for Metal/OpenGL. (1113018)

  • Graphics: SRP Batcher doesn't support 32 bit vertex index buffer sub-mesh on dx11. (1117383)

  • Graphics: Vulkan: Disable error spew when attempting to draw with missing bindings.

  • Graphics: Vulkan: Fix for visual flickering when editing mesh data from script when graphics jobs are in use. (1075277)

  • IL2CPP: Fixed crash during managed code stripping when system language is Turkish. (1083122)

  • IMGUI: Fixed: Input field is not always updated properly after pasting. (1103315)

  • IMGUI: Pixel alignment sometimes influenced word wrapping. (1096878)

  • iOS: Fix to respect default values from Settings.bundle. (1115533)

  • iOS: Fixed Build And Run to work on projects with space in path. (1108944)

  • iOS: Fixed build failure when Xcode DerivedData path was set relative to the project. (1117371)

  • iOS: Made Screen.currentResolution.refreshRate return actual refresh rate instead of hardcoding 30. (1117877)

  • iOS: Metal: added warning for using grabpass+AA on old ios/gpu (when store+resolve action is not supported). (1107546)

  • iOS: Metal: stopped unconditionally discarding AA depth. (1107546)

  • iOS: We no longer override Xcode framework search paths setting when appending Xcode project. (703217)

  • Linux: Fix for multiple identical webcams. (1115884)

  • Linux: Fix graphical corruption in framebuffer on Nvidia Linux. (1108929)

  • Linux: Fix to leave maximized window programmatically. (1099286)

  • Linux: Fixed annoying "'Unity' is not responding" message on Linux. (1072712)

  • Linux: Fixed crash on Editor startup when using -force-vulkan. (1109529)

  • Linux: Fixed cursor not being confined to the game window when using CursorLockMode.Confined on Linux standalone player. (1105204)

  • Linux: Fixed framerate drops caused by repainting on excessive mouse input events. (1023587)

  • Linux: Fixed issue with keyboard input not being captured by the Game view when in Play mode. (1109908)

  • Linux: Scrolling the mouse wheel no longer produces large framerate drop. (1066760)

  • Linux: [Mouse][Editor] Fixed issue where mouse position on the New Input System (which is a preview package at present) was inconsistent with that on the current input system. (1114148)

  • OSX: Fix for GameKit reference in the application when Game Center is not used. (1065311)

  • OSX: Fixed case of Mac Editor shipping with debug info unstripped. (1070559)

  • OSX: Removed legacy Mono config folder from Mono BE player build. (1111649)

  • Package Manager: An error could occur during package resolution if the global npm cache was corrupted. (1111208)

  • Package Manager: Disable delete and rename menu items for all package root folders in the Project window. (1101384)

  • Package Manager: Fixed issue where it was not possible to open a scene if the folder name of a local package and the project folder name had the same initial characters. (1117768)

  • Particles: Particle trails could be culled incorrectly when using the World Space trails option. (1089679)

  • Particles: Update particle bounce light immediately when the multiplier is changed on the Light. (1102543)

  • Player: [Windows] Maximizing the player in the windowed mode sets it to Maximized Window mode. (1085673)

  • Scripting: Fix exception when calling XRSettings methods and properties on some platforms. (1109347)

  • Scripting: Fix freeze in editor when compiling script containing quote character literal. (1111740)

  • Scripting Upgrade: Fixed crash in Marshal.PtrToStructure with generic struct. (1106422)

  • Scripting Upgrade: Fixed crash when a method has Task return type. (1111048)

  • Scripting Upgrade: Fixed crash when delegate constructor is invoked with NULL method. (1091693)

  • Scripting Upgrade: Fixed sizes for System.Numerics types. (1118631)

  • Services: Fix crash when unhandled exception occured on background thread with Cloud Diagnostics enabled. (1114571)

  • Shaders: Fixed SHADER_MACRO to stop it from generating version numbers that are too high when Unity's major/mino version reaches double-digits. (1113175)

  • Timeline: Changed behaviour of the Timeline Window to apply modifications immediately during Playmode. (922846, 1111908)

  • Timeline: Clip edit mode clutch keys will no longer get stuck when holding multiple keys simultaneously. (1097216)

  • Timeline: Clip inspector will no longer throw exceptions when changing values when the inspector is locked. (1115984)

  • Timeline: Fixed an issue where a circular reference warning appeared in the Control Clip inspector even if there was no circular reference. (1116520)

  • Timeline: Fixed appearance of muted tracks. (1018643)

  • Timeline: Made drag and drop of objects between track insert the new track correctly. (1011381)

  • Timeline: The PlayableDirector.played event is now called after entering or exiting Playmode. (1088918)

  • Timeline: Undoing a paste track operation in a group will no longer corrupt the timeline. (1116052)

  • UI Elements: Corrected layout problem leading to the field input text having its border clipped. (1105567)

  • UI Elements: Fixed broken edge expansion system and tesselation.

  • UI Elements: Fixed case of Exception being thrown on screen resolution change. (1104793, 1114266)

  • UI Elements: Fixed case of Material Editor (Inspector) constant repaint. (1111923)

  • UI Elements: Fixed issue where the context menu Cut/Paste options would make the internal state of a TextField lose synchronization with their internal value. (1120588)

  • UI Elements: Fixed issue where the gradient field didin't show the alpha checker. (1118985)

  • UI Elements: Fixed the long names not displayed correctly in the shortcut manager. (1099039)

  • UI Elements: Fixed the multiline TextField not supporting the Tab character. (984808)

  • Universal Windows Platform: Fixed build failure in generated VS project due to duplicate Extension nodes in the appx manifest. (1123172)

  • Universal Windows Platform: Fixed incorrect mouse position when using the New Input System (preview package at this time). (1091493)

  • Universal Windows Platform: Fixed rapid triggering of OnClick() events in UI when multiple Xbox controllers connected. (1099111)

  • Web: Fix disposing WWW object that has been yield returned from coroutine. (1117213)

  • WebGL: Make audio work again in Safari after Apple added auto-play restrictions (requires clicking on content to enable audio). (1089060)

  • Windows: Fixed case of Multidisplay always reverting to native resolution on primary display. (1040726)

  • Windows: Improved Windows crash handling reliability.

  • XR: Allow Incremental GC on Lumin.

  • XR: Fixed case of Vulkan instance extensions not being applied on Oculus. (1123193)

  • XR: Fixed stereo rendering support functions for shaders that must be written in GLSL. (1080662)

  • XR: The two types of raycasts in the XRRaycastSubsystem were profiled using the same tag, "XR.Raycast", making them indistinguishable in the profiler. They are now called "XR.RaycastFromScreen" and "XR.RaycastRay".

  • XR: UnityEngine.XR.InputTracking's GetLocalPosition and GetLocalRotation has been deprecated.

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 12.04+, SteamOS+
    • Graphics card with DX10 (shader model 4.0) capabilities.
    • CPU: SSE2 instruction set support.
  • iOS player requires iOS 9.0 or higher.

  • Android: OS 4.1 or later; ARMv7 CPU with NEON support or Atom CPU; 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

Changeset: 770171a847a0