Removed: Deprecated Hierarchy.GetAllNodeTypeHandlersBase has been removed.
ScriptingBreaking
Removed: Deprecated Hierarchy.GetAllNodeTypeHandlersBaseCount has been removed.
ScriptingBreaking
Removed: Deprecated Hierarchy.RegisterNodeTypeHandler has been removed.
ScriptingBreaking
Removed: Deprecated Hierarchy.SortChildren(HierarchyNode, bool) has been removed.
ScriptingBreaking
Removed: Deprecated Hierarchy.UnregisterNodeTypeHandler has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyCommandList.SortChildren(HierarchyNode, bool) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyFlattened.Hierarchy has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyFlattenedNodeChildren has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyNodeTypeHandlerBase constructor taking a Hierarchy parameter has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyNodeTypeHandlerBase.ChangesPending has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyNodeTypeHandlerBase.Dispose has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyNodeTypeHandlerBase.IntegrateChanges has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.ClearFlags(HierarchyNode, HierarchyNodeFlags, bool) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.DoesNotHaveAllFlags(HierarchyNode, HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.DoesNotHaveAllFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.DoesNotHaveAllFlagsCount has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.DoesNotHaveAnyFlags(HierarchyNode, HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.DoesNotHaveAnyFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.DoesNotHaveAnyFlagsCount has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.EnumerateNodesWithAllFlags has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.EnumerateNodesWithAnyFlags has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.EnumerateNodesWithoutAllFlags has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.EnumerateNodesWithoutAnyFlags has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetIndicesWithAllFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetIndicesWithAllFlags(HierarchyNodeFlags, Span<int>) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetIndicesWithAnyFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetIndicesWithAnyFlags(HierarchyNodeFlags, Span<int>) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetIndicesWithoutAllFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetIndicesWithoutAllFlags(HierarchyNodeFlags, Span<int>) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetIndicesWithoutAnyFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetIndicesWithoutAnyFlags(HierarchyNodeFlags, Span<int>) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetNodesWithAllFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetNodesWithAllFlags(HierarchyNodeFlags, Span<HierarchyNode>) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetNodesWithAnyFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetNodesWithAnyFlags(HierarchyNodeFlags, Span<HierarchyNode>) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetNodesWithoutAllFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetNodesWithoutAllFlags(HierarchyNodeFlags, Span<HierarchyNode>) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetNodesWithoutAnyFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetNodesWithoutAnyFlags(HierarchyNodeFlags, Span<HierarchyNode>) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.HasAllFlags(HierarchyNode, HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.HasAllFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.HasAllFlagsCount has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.HasAnyFlags(HierarchyNode, HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.HasAnyFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.HasAnyFlagsCount has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.Hierarchy has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.HierarchyFlattned has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.SetFlags(HierarchyNode, HierarchyNodeFlags, bool) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.ToggleFlags(HierarchyNode, HierarchyNodeFlags, bool) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewNodesEnumerable has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyWindow.InitializingView has been removed.
ScriptingBreaking
Deprecated: Removed deprecated TouchScreenKeyboard.Android.consumesOutsideTouches and closeKeyboardOnOutsideTap properties; Unity now always processes touches outside the on-screen keyboard.
AndroidBreaking
Deprecated: Deprecated various Audio APIs.
AudioBreaking
Removed: Project Auditor: Removed FirstCustomCategory from IssueCategory enum, and moved it to IssueCategoryExtensions as a static field.
EditorBreaking
Removed: Removed the GameCenter implementation.
iOSBreaking
Obsoleted: Removed PhysicsWorld and PhysicsWorldDefinition autoContactCallbacks and autoTriggerCallbacks properties as they are no longer required or used. The contact and trigger events are effectively free now and production of such events is still controlled on a per-shape basis so no behaviour has been lost.
Physics 2DBreaking
Removed: Deprecated Hierarchy.GetAllNodeTypeHandlersBase has been removed.
ScriptingBreaking
Removed: Deprecated Hierarchy.GetAllNodeTypeHandlersBaseCount has been removed.
ScriptingBreaking
Removed: Deprecated Hierarchy.RegisterNodeTypeHandler has been removed.
ScriptingBreaking
Removed: Deprecated Hierarchy.SortChildren(HierarchyNode, bool) has been removed.
ScriptingBreaking
Removed: Deprecated Hierarchy.UnregisterNodeTypeHandler has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyCommandList.SortChildren(HierarchyNode, bool) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyFlattened.Hierarchy has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyFlattenedNodeChildren has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyNodeTypeHandlerBase constructor taking a Hierarchy parameter has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyNodeTypeHandlerBase.ChangesPending has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyNodeTypeHandlerBase.Dispose has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyNodeTypeHandlerBase.IntegrateChanges has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.ClearFlags(HierarchyNode, HierarchyNodeFlags, bool) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.DoesNotHaveAllFlags(HierarchyNode, HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.DoesNotHaveAllFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.DoesNotHaveAllFlagsCount has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.DoesNotHaveAnyFlags(HierarchyNode, HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.DoesNotHaveAnyFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.DoesNotHaveAnyFlagsCount has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.EnumerateNodesWithAllFlags has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.EnumerateNodesWithAnyFlags has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.EnumerateNodesWithoutAllFlags has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.EnumerateNodesWithoutAnyFlags has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetIndicesWithAllFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetIndicesWithAllFlags(HierarchyNodeFlags, Span<int>) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetIndicesWithAnyFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetIndicesWithAnyFlags(HierarchyNodeFlags, Span<int>) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetIndicesWithoutAllFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetIndicesWithoutAllFlags(HierarchyNodeFlags, Span<int>) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetIndicesWithoutAnyFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetIndicesWithoutAnyFlags(HierarchyNodeFlags, Span<int>) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetNodesWithAllFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetNodesWithAllFlags(HierarchyNodeFlags, Span<HierarchyNode>) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetNodesWithAnyFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetNodesWithAnyFlags(HierarchyNodeFlags, Span<HierarchyNode>) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetNodesWithoutAllFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetNodesWithoutAllFlags(HierarchyNodeFlags, Span<HierarchyNode>) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetNodesWithoutAnyFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.GetNodesWithoutAnyFlags(HierarchyNodeFlags, Span<HierarchyNode>) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.HasAllFlags(HierarchyNode, HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.HasAllFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.HasAllFlagsCount has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.HasAnyFlags(HierarchyNode, HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.HasAnyFlags(HierarchyNodeFlags) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.HasAnyFlagsCount has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.Hierarchy has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.HierarchyFlattned has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.SetFlags(HierarchyNode, HierarchyNodeFlags, bool) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewModel.ToggleFlags(HierarchyNode, HierarchyNodeFlags, bool) has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyViewNodesEnumerable has been removed.
ScriptingBreaking
Removed: Deprecated HierarchyWindow.InitializingView has been removed.
ScriptingBreaking
Removed: Removed the deprecated MovieTexture API.
VideoBreaking
Renamed the Sprite "Physics Shape" API and Sprite Editor tab to "Physics Outline" to avoid confusion with PhysicsCore2D's PhysicsShape. The old API is deprecated but still works and auto-upgrades.
2DBreaking
Unity Transport: The RoslynAnalyzerFix asset post-processor (and its assembly) have been removed from the package. This deprecated hook did not serve a purpose anymore since the analyzer was removed from the package in version 2.5.0.
MultiplayerBreakingUUM-146183
Always automatically generate the NetcodeConfig singleton. This is a breaking change for any project that uses EntityManager.CreateSingleton<NetcodeConfig>() to create the singleton explicitly. You can update your code to use SystemAPI.GetSingleton<NetcodeConfig>() instead.
Netcode for EntitiesBreaking

Added: Add support for SDK Platform 37
AndroidAPI change
Added: AssetImportContext.DependsOnArtifact overloads that take a UnityEngine.Object or a LazyLoadReference<T>, so a scripted importer can declare an artifact dependency directly from an object or lazy reference.
Asset ImportAPI change
Added: Allow for extra scripting defines when using BuildPlayer with BuildPlayerWithProfileOptions.
Build PipelineAPI change
Added: Adding the MainToolbarCustomElement API to the customizable toolbar to enable the creation of custom VisualElements.
EditorAPI change
Added: Project Auditor: Exposed various APIs to enable packages and user code to write rules.
EditorAPI change
Added: ChunkEntityEnumerator.IsSparse and .NextEntityIndexBatch were added to support cases where code needs to branch on sparse chunks, and would prefer batched APIs for performance reasons.
EntitiesAPI change
Added: Added a new API to access the root VisualElement of Nodes.
Graph ToolkitAPI change
Added: Added the following properties on Graph: SupportedTypes, AvailableVariableTypes and AvailableConstantTypes. Added the following methods on Graph: BuildAvailableVariableTypes and BuildAvailableConstantTypes. Graph devs can now customize which variable types their end users have access to in the blackboard and constant types in the graph item library. Types added using BuildAvailableConstantTypes and BuildAvailableConstantTypes are implicitly added to SupportedTypes.
Graph ToolkitAPI change
Added: Add "ChainSegment.UpdateSegments()" to update the segments. This compliments the existing "ChainSegment.CreateSegments()"
Physics 2DAPI change
Added: Added a "PhysicsEvents.WorldTransformPlaneChange" event which is called when a PhysicsWorld transform plane is changed.
Physics 2DAPI change
Added: Added an extension method to "NativeArray<T>" of "Filter()", providing a lazy, allocation-free, Burst-compatible filtered view over physics result arrays (object creation, queries, events, and other operations). We've added a "IPhysicsResultFilter<T>" and "PhysicsResultEnumerable<T, TFilter>" to allow custom filter methods to be used.
Physics 2DAPI change
Added: Added autoAnchorA and autoAnchorB properties to PhysicsJoint and PhysicsJointDefinition.
Physics 2DAPI change
Added: Added autoDistance property to PhysicsDistanceJoint and PhysicsDistanceJointDefinition.
Physics 2DAPI change
Added: [Scripting] IL2CPP code coverage support
ScriptingAPI change
Added: Added new "Maximum Size Reduction" and "Maximum Size Reduction with LTO" Code Optimization settings. When enabled this will further optimize compiled IL2CPP code as well as apply extra link time optimizations (these are distinct from LTO). Testing across multiple projects and devices showed that compared to the default "Shorter Build Time" setting, "Maximum Size Reduction" reduces code size by an average of 28.50% at the cost of 5.25% frame time performance regression.
WebAPI change
Added: Add support for SDK Platform 37
AndroidAPI change
Added: Added the PowerMonitor energy consumption API to Adaptive Performance Android provider.
AndroidAPI change
Added: Added the PowerMonitor energy consumption API to Adaptive Performance Android provider.
AndroidAPI change
Added: Added ApplicationStartInfoProvider.GetHistoricalProcessStartReasons to retrieve ApplicationStartInfo records.
AndroidAPI change
Changed: Reduced public API surface of the Android Java player library (com.unity3d.player) by making internal classes and methods package-private. Affected classes - ApplicationExitInfoBase, ApplicationExitInfoProvider, AudioVolumeHandler, Camera2Wrapper, GoogleARCoreApi, HFPStatus, MultiWindowSupport, NativeLoader, NetworkConnectivity, OrientationLockListener, PermissionRequest, PlatformSupport, StaticSplashscreen, UnityGameManager, UnityGameState, UnityPermissions, VideoPlayer, TimeoutThread, UnityPlayer.kbCommand, IFrameReady, IPermissionRequestCallbacks, VideoPlayer.StateCallback. Affected methods - UnityPlayer.getNetworkProxySettings(java.lang.String), UnityPlayer.startOrientationListener(int), UnityPlayer.stopOrientationListener(), UnityPlayer.setMainSurfaceViewAspectRatio(float).
AndroidAPI change
Added: AssetImportContext.DependsOnArtifact overloads that take a UnityEngine.Object or a LazyLoadReference<T>, so a scripted importer can declare an artifact dependency directly from an object or lazy reference.
Asset ImportAPI change
Added: Allow for extra scripting defines when using BuildPlayer with BuildPlayerWithProfileOptions.
Build PipelineAPI change
Changed: Added new abstractions for progressive asset loading.
CoreAPI change
Added: Added APIs to insert custom entries in the Graph and Blackboard right-click menus.
EditorAPI change
Added: Adding the MainToolbarCustomElement API to the customizable toolbar to enable the creation of custom VisualElements.
EditorAPI change
Added: Project Auditor: Added Descriptor.IsSupported so analyzers can check if an issue is valid for the current platform and version.
EditorAPI change
Added: Project Auditor: Exposed various APIs to enable packages and user code to write rules.
EditorAPI change
Added: Added the CompanionComponent<T> unmanaged wrapper and the EntityManager.GetCompanion<T> extension so that companion components can be read from systems without using the obsolete managed component API.
EntitiesAPI change
Added: ChunkEntityEnumerator.IsSparse and .NextEntityIndexBatch were added to support cases where code needs to branch on sparse chunks, and would prefer batched APIs for performance reasons.
EntitiesAPI change
Changed: IDebugOnAdded and IDebugOnRemoved callback signatures now require Entity parameter. Update callbacks from OnAdded(ref T component) to OnAdded(Entity entity, in T component).
EntitiesAPI change
Added: Added a new API to access the root VisualElement of Nodes.
Graph ToolkitAPI change
Added: Added a new overload to Graph.AddVariableNode that allows variable nodes to be created with a specific mode. Added a Mode getter to IVariableNode to get the current VariableNodeMode of the variable node.
Graph ToolkitAPI change
Added: Added the following properties on Graph: SupportedTypes, AvailableVariableTypes and AvailableConstantTypes. Added the following methods on Graph: BuildAvailableVariableTypes and BuildAvailableConstantTypes. Graph devs can now customize which variable types their end users have access to in the blackboard and constant types in the graph item library. Types added using BuildAvailableConstantTypes and BuildAvailableConstantTypes are implicitly added to SupportedTypes.
Graph ToolkitAPI change
Added: Add "ChainSegment.UpdateSegments()" to update the segments. This compliments the existing "ChainSegment.CreateSegments()"
Physics 2DAPI change
Added: Added "PhysicsUserData.vector3IntValue" property of type Vector3Int. This will allow per-shape tilemap position references.
Physics 2DAPI change
Added: Added a "PhysicsEvents.WorldTransformPlaneChange" event which is called when a PhysicsWorld transform plane is changed.
Physics 2DAPI change
Added: Added an extension method to "NativeArray<T>" of "Filter()", providing a lazy, allocation-free, Burst-compatible filtered view over physics result arrays (object creation, queries, events, and other operations). We've added a "IPhysicsResultFilter<T>" and "PhysicsResultEnumerable<T, TFilter>" to allow custom filter methods to be used.
Physics 2DAPI change
Added: Added autoAnchorA and autoAnchorB properties to PhysicsJoint and PhysicsJointDefinition.
Physics 2DAPI change
Added: Added autoDistance property to PhysicsDistanceJoint and PhysicsDistanceJointDefinition.
Physics 2DAPI change
Added: Added CoreCLR ScriptingImplementation enum value exposing CoreCLR player support.
ScriptingAPI change
Added: [Scripting] IL2CPP code coverage support
ScriptingAPI change
Added: Added support to capture a VisualElement to a RenderTexture.
UI ToolkitAPI change
Added: Added new "Maximum Size Reduction" and "Maximum Size Reduction with LTO" Code Optimization settings. When enabled this will further optimize compiled IL2CPP code as well as apply extra link time optimizations (these are distinct from LTO). Testing across multiple projects and devices showed that compared to the default "Shorter Build Time" setting, "Maximum Size Reduction" reduces code size by an average of 28.50% at the cost of 5.25% frame time performance regression.
WebAPI change

Pick your Unity version

Unity Releases compares releases against the version your project is on. Picking it now keeps Compare versions focused on what changes between where you are and where you might be going.