Deprecated: Removed deprecated TouchScreenKeyboard.Android.consumesOutsideTouches and closeKeyboardOnOutsideTap properties; Unity now always processes touches outside the on-screen keyboard.
AndroidBreaking
Added: Added a real-time counterpart to ControlContext.SendMessage for the Scriptable Audio Pipeline. This is a binary breaking change, but it's source compatible.
AudioBreaking
Added: Scriptable processors: added GeneratorInstance.CreationParameters and RootOutputInstance.CreationParameters; deprecated ProcessorInstance.CreationParameters and its implicit conversions (to be removed in a following version).
AudioBreaking
Deprecated: Deprecated various Audio APIs.
AudioBreaking
Deprecated: GameObjectUtility.AreStaticEditorFlagsSet use AnyStaticEditorFlagsSet for the previous behavior, or AllStaticEditorFlagsSet to require all flags. Existing code is automatically upgraded to AnyStaticEditorFlagsSet by the API Updater (no behavior change).
CoreBreaking
Deprecated: Deprecate Oculus XR package.
EditorBreakingXR
Obsoleted: The EntityCommandBuffer PlaybackPolicy enum has been made obsolete with errors. To apply the same set of commands more than once, record them into a new EntityCommandBuffer for each playback.
EditorBreaking
Removed: Project Auditor: Removed FirstCustomCategory from IssueCategory enum, and moved it to IssueCategoryExtensions as a static field.
EditorBreaking
Deprecated: Marked the following functions as deprecated as part of the managed component deprecation: EntityQuery.ToComponentArray<T>(), EntityQuery.GetSingleton<T>(), TryGetSingleton<T>(), GetSingletonRW<T>(), and SetSingleton<T>() for managed (class) component types, and EntityQuery.GetTransformAccessArray().
EntitiesBreaking
Removed: Baking managed components and managed shared components is no longer supported. Baker.AddComponentObject, Baker.AddSharedComponentManaged, and Baker.SetSharedComponentManaged are now compile errors. Convert your data to unmanaged IComponentData / ISharedComponentData (use UnityObjectRef<T> to reference UnityEngine.Object instances) and bake it with the unmanaged AddComponent / AddSharedComponent APIs.
EntitiesBreaking
Removed: The managed-component APIs deprecated in 6.6 are now compile errors.
EntitiesBreaking
Removed: The EntityCommandBuffer/ParallelWriter APIs for managed IComponentData and managed ISharedComponentData are now compile errors.
EntitiesBreaking
Deprecated: Deprecated both TerrainExtensions.UpdateGIMaterials overloads. Enlighten realtime Global Illumination will be removed in a future release.
GIBreaking
Deprecated: Deprecated CombineInstance.realtimeLightmapScaleOffset. Enlighten realtime Global Illumination will be removed in a future release.
GIBreaking
Deprecated: Deprecated DynamicGI.indirectScale, DynamicGI.isConverged, DynamicGI.materialUpdateTimeSlice, DynamicGI.synchronousMode, DynamicGI.updateThreshold, DynamicGI.SetEmissive, and DynamicGI.SetEnvironmentData. DynamicGI.UpdateEnvironment is not deprecated. Enlighten realtime Global Illumination will be removed in a future release.
GIBreaking
Deprecated: Deprecated LightingSettings.realtimeGI and LightingSettings.realtimeEnvironmentLighting. Enlighten realtime Global Illumination will be removed in a future release.
GIBreaking
Deprecated: Deprecated LightmapParameters.clusterResolution, LightmapParameters.irradianceBudget, LightmapParameters.irradianceQuality, LightmapParameters.isTransparent, LightmapParameters.modellingTolerance, LightmapParameters.stitchEdges, and LightmapParameters.systemTag. LightmapParameters.resolution is not deprecated, because it also sets the resolution the Progressive Lightmapper bakes terrain at. Enlighten realtime Global Illumination will be removed in a future release.
GIBreaking
Deprecated: Deprecated MeshRenderer.enlightenVertexStream. Enlighten realtime Global Illumination will be removed in a future release.
GIBreaking
Deprecated: Deprecated Renderer.realtimeLightmapIndex and Renderer.realtimeLightmapScaleOffset. Enlighten realtime Global Illumination will be removed in a future release.
GIBreaking
Deprecated: Deprecated RendererExtensions.UpdateGIMaterials. Enlighten realtime Global Illumination will be removed in a future release.
GIBreaking
Deprecated: Deprecated Terrain.realtimeLightmapIndex and Terrain.realtimeLightmapScaleOffset. Enlighten realtime Global Illumination will be removed in a future release.
GIBreaking
Deprecated: Deprecated UnityEditor.Lightmapping.realtimeGI. Enlighten realtime Global Illumination will be removed in a future release.
GIBreaking
Added: The GraphLogger has several new properties. Each provides a List of Nodes, Ports or Variables that have been added, removed or changed (removed items simply have their guid).
Graph ToolkitBreaking
Changed: Deprecated RayTracingAABBsInstanceConfig.dynamicGeometry and replaced with RayTracingAABBsInstanceConfig.rayTracingMode. AABB ray tracing instances are now compatible with RayTracingAccelerationStructure.UpdateInstanceGeometry method.
GraphicsBreaking
Deprecated: Input.backButtonLeavesApp is deprecated and will be removed in a future release. Use Application.backButtonLeavesApp instead.
InputBreaking
Removed: Removed the GameCenter implementation.
iOSBreaking
Removed: The deprecated iPhoneInput class has been removed. Use Input instead.
iOSBreaking
Removed: The obsolete managed GhostPresentationGameObjectPrefab component is now a hard error ([Obsolete(..., true)]) and no longer functional. Use the unmanaged UnmanagedGhostPresentationGameObjectPrefab instead, which references the prefabs through UnityObjectRef<GameObject>.
Netcode for EntitiesBreaking
Added: Added the PhysicsCallbacks.IPreContactCallback and PhysicsCallbacks.IPreContinuousCallback interfaces for physics shapes, replacing PhysicsCallbacks.IPreSolveCallback which is now deprecated. IPreContactCallback reports a contact before it is solved and gives you the full contact manifold to modify or cancel. IPreContinuousCallback reports a fast moving shape that is about to be stopped short of another shape, and lets you decide whether to stop it. IPreSolveCallback previously reported both of these situations through a single callback. The per shape option that enables them is now called Pre Contact Callbacks.
Physics 2DBreaking
Added: Added pointA and pointB to the physics contact manifold point, which give the contact point on each shape in world space. The existing point property is now deprecated because the two new properties replace it.
Physics 2DBreaking
Deprecated: Deprecated the PhysicsCallbacks.IPreSolveCallback interface. It reported both an existing contact and a predicted stop for a fast moving shape through a single callback, so it is replaced by PhysicsCallbacks.IPreContactCallback and PhysicsCallbacks.IPreContinuousCallback, one for each situation. The deprecated interface keeps working and still reports both, and a shape only uses it where the matching new interface is not implemented, so you can move over one at a time.
Physics 2DBreaking
Deprecated: Deprecated PhysicsWorld.WorldProfile.applyBounciness; bounciness is no longer a separate solver stage so it always reads as zero.
Physics 2DBreaking
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
Obsoleted: Obsoleted Playable APIs Playable.SetDelay, Playable.GetDelay, as well as Playable.SetPlayState. The delay functionality can be implemented manually via ScriptPlayables, either by inserting a new playable in the chain which implements the delay, or by modifying the parent playable to handle the delay.
PlayablesBreaking
Deprecated: Deprecated PlayerSettings.gpuSkinning. Use PlayerSettings.meshDeformation instead.
ScriptingBreaking
Deprecated: HierarchyNodeTypeHandlerBase.SearchBegin(HierarchySearchQueryDescriptor), SearchMatch(in HierarchyNode) and SearchEnd() are obsolete. Use the overloads that take a HierarchyViewModel, since handlers are shared by every view model on a hierarchy.
ScriptingBreaking
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.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 HierarchyViewModel.HierarchyFlattned.
ScriptingBreaking
Obsoleted: Deprecating UnityEngine.Rendering.Pool and standarizing UnityEngine.Pool across SRP packages.
SRP CoreBreaking
Deprecated: Marked the PositionAsUV1, TMP_TextElement_Legacy, FaceInfo_Legacy, TMP_Glyph, TMP_Sprite, KerningPair and KerningTable classes as deprecated (with a warning). Marked the GlyphValueRecord_Legacy struct as deprecated (with a warning). Marked the EventHandle enum as deprecated (with a warning). Marked TMP_SpriteAsset.spriteInfoList as deprecated (with a warning). Marked Scrollbar.ClickRepeat(PointerEventData eventData) deprecated (with a warning).
uGUIBreaking
Obsoleted: Marked the TMP_FontUtilities class as obsolete (with an error). Marked the KerningPairKey struct as obsolete (with an error). Marked the EventSystem.SetUITookitEventSystemOverride method as obsolete (with an error). Marked the Graphic.m_CachedMesh, Graphic.m_CachedUvs and Graphic.useLegacyMeshGeneration members as obsolete (with an error).
uGUIBreaking
Removed: Removed BaseMeshEffect.ModifyMesh(Mesh mesh). Removed BaseRaycaster.priority property. Removed EventSystem.lastSelectedGameObject property. Removed Graphic.OnPopulateMesh(Mesh m). Removed Image.eventAlphaThreshold property. Removed InputField.onValueChange property. Removed InputField.ScreenToLocal(Vector2 screen). Removed IGraphicEnabledDisabled interface. Removed IMeshModifier.ModifyMesh(Mesh mesh). Removed Mask.OnSiblingGraphicEnabledDisabled(). Removed PointerEventData.worldPosition and PointerEventData.worldNormal properties. Removed RaycastResult.document property. Removed Selectable.allSelectables property. Removed ShaderUtilities.isInitialized and ShaderUtilities.GetShaderPropertyIDs(). Removed StandaloneInputModule.InputMode enum. Removed StandaloneInputModule.inputMode, StandaloneInputModule.allowActivationOnMobileDevice and StandaloneInputModule.forceModuleActive properties. Removed StandaloneInputModule.ForceAutoSelect(). Removed TextMeshPro.textContainer property. Removed TMP_FontAsset.fontInfo property. Removed TMP_Text.enableWordWrapping and TMP_Text.enableKerning properties. Removed TMP_Text.SetText(string sourceText, bool syncTextInputBox = true). Removed TouchInputModule class.
uGUIBreaking
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
Removed the NetCoreRuntime from the Editor install.
EditorBreaking
Removed un-unused UnityAot2 Hashes.
IL2CPPBreaking
Removed assertions from ToFileDescriptor.
MonoBreakingUUM-145761
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: Added Graphics.disableDepthAndStencilBuffers, a read-only property that returns whether Disable Depth and Stencil Buffers is enabled in Player Settings.
GraphicsAPI change
Changed: Added Render Shader User Value (RSUV) support to intermediate renderers.
2DAPI change
Added: Added EnergyUsage API to enable power monitor (CPU, GPU, TPU, display, memory) energy consumption reading.
Adaptive PerformanceAPI change
Added: Added CompileSdkSpec Gradle DSL classes.
AndroidAPI change
Added: Added support for SDK Platform 37.
AndroidAPI change
Added: Added support the new CPU/GPU utilization Adaptive Performance metrics via CPU/GPU headroom methods on Android.
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
Added: Added PlayerSettings.Android.compileSdkVersion to set the compile API level independently of the target API level, including sub-integer (major.minor) precision.
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
Changed: Moved AnimationPlayableOutputExtensions and AnimationStreamSource out of experimental. Projects will be upgraded automatically with the new namespace.
AnimationAPI 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: Added seeking support to scriptable processors and audio clips used as generators.
AudioAPI change
Added: Added a new AssetPostprocessor.OnProcessScene callback used when loading scenes in playmode or during a build as a deterministic replacement to IProcessSceneWithReport.OnProcessScene.
Build PipelineAPI change
Added: Allow for extra scripting defines when using BuildPlayer with BuildPlayerWithProfileOptions.
Build PipelineAPI change
Added: GameObjectUtility.AllStaticEditorFlagsSet returns true only if all of the requested StaticEditorFlags are set.
CoreAPI change
Added: GameObjectUtility.AnyStaticEditorFlagsSet returns true if any of the requested StaticEditorFlags are set.
CoreAPI change
Changed: Added new abstractions for progressive asset loading.
CoreAPI change
Added: Added a new public API to ease discoverability of available Main Toolbar elements.
EditorAPI change
Added: Added a new RequiresInsights attribute. Packages and user code can use it to declare a dependency on the Insights module, which ensures the module is included in the build.
EditorAPI change
Added: Added APIs to insert custom entries in the Graph and Blackboard right-click menus.
EditorAPI change
Added: Added more alloc-free APIs for TextElement.
EditorAPI change
Added: Added public text API to generate text using ATG.
EditorAPI change
Added: Added right click menu support for state machine.
EditorAPI change
Added: Added Span/ReadOnlySpan for applicable editor APIs.
EditorAPI change
Added: Added the MainToolbarCustomElement API to the customizable toolbar to enable the creation of custom VisualElements.
EditorAPI change
Added: Added the UnityEditor.EditorDialogEvents API, which raises dialogWillShow and dialogDismissed events when a native or custom modal dialog appears in the Editor. External tooling can use these events to detect that the Editor's main thread is blocked by a dialog instead of appearing hung.
EditorAPI change
Added: Added CompassSensor, exposing magnetic heading, true heading, raw geomagnetic vector, and heading accuracy as the parity equivalent of UnityEngine.Input.compass.
EditorAPI change
Added: Added EditorUserBuildSettings.activeNamedBuildTarget and BuildSummary.namedBuildTarget.
EditorAPI change
Added: GTK : Custom state machine conditions can now customize their row in the transition inspector.
EditorAPI change
Added: GTK : New API added to have icons for Conditions, logic groups, transition rules and transitions, shown on their row in the transition inspector.
EditorAPI change
Added: Introduced support for Unity Registry packages adding references to on-disk assets to a build profile.
EditorAPI change
Added: Introduced support for Unity Registry packages adding references to on-disk assets to a build profile.
EditorAPI change
Added: Project Auditor: Added migration areas to support adding migration rules.
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: Project Auditor: exposed ShadersModule.OnAnalysisStarted.
EditorAPI change
Added: Implemented visibility, focus and resizability APIs for Windowing.
EmbeddedLinuxAPI change
Added: Implemented window focus, visibility, and destruction event system APIs in Windowing.
EmbeddedLinuxAPI 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 an API for creating, loading and unloading procedurally generated LightProbes objects.
GIAPI change
Added: Added LODGroup.globalIlluminationLOD, Renderer.lodGroupMask and the Unity.Rendering.GlobalIlluminationLOD component.
GIAPI change
Added: Let render pipelines opt out of the baked divide-by-PI convention.
GIAPI change
Added: Added a new API to access the root VisualElement of Nodes.
Graph ToolkitAPI change
Added: Added a new API to access the root VisualElement of States.
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 an API to edit Group Conditions.
Graph ToolkitAPI change
Added: Added an overload to Graph.UndoBeginRecordGraph taking a param array of Node objects. Passing nodes here will track changes to serialized fields on user defined nodes, ensuring they are tracked by the undo system and that the graph is dirtied when these fields are modified.
Graph ToolkitAPI change
Added: Added public API for customizing state accent visuals in editor and runtime.
Graph ToolkitAPI change
Added: Added public API for customizing state transition visuals in editor and runtime.
Graph ToolkitAPI change
Added: Added state options. Implemented by overriding State.OnDefineOptions on a State, and accessed through IStateOption. State options appear in the Inspector when the state is selected.
Graph ToolkitAPI change
Added: Added StateMachine.OnStateMachineChanged() public API.
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: Added the DataTypeStyleMapper.Register(System.Type dataType, UnityEngine.Color color) overload to allow changing the color of a data type while showing a default icon.
Graph ToolkitAPI change
Added: Added IInputPortBuilder.WithDataTypes and IOutputPortBuilder.WithDataTypes APIs to define a port as Polymorphic (a port that accepts multiple data types).
Graph ToolkitAPI change
Added: Added IPort.TrySetDataType API to programmatically change the data type of a polymorphic port.
Graph ToolkitAPI change
Added: Added Node.OnPortDataTypeChanged callback that is triggered when a user changes the data type of a polymorphic port.
Graph ToolkitAPI change
Added: Extend ITransition to add abilities to manage ITransitionRules.
Graph ToolkitAPI change
Added: Extend the StateMachine class to add the ability to manage transitions between states.
Graph ToolkitAPI change
Added: The Graph Toolkit state machine authoring API is now public, letting you define custom state-machine graph assets (with custom states, transitions, conditions, and variables) from editor scripts.
Graph ToolkitAPI change
Added: Added Default Mesh Buffer Target to project graphics settings.
GraphicsAPI change
Added: Added Graphics.disableDepthAndStencilBuffers, a read-only property that returns whether Disable Depth and Stencil Buffers is enabled in Player Settings.
GraphicsAPI change
Added: Added a new DeviceOrientationSensor device that provides feature parity with UnityEngine.Input.deviceOrientation.
Input SystemAPI change
Added: Added internal plumbing for the Input System package to be able to extract Device Orientation similar to Input Manager.
Input SystemAPI change
Added: Introducing user module version for UnityAPI module for Swift project type.
iOSAPI change
Added: The former com.unity.collections has been moved into an engine module, namely ManagedKernelModule. It is now available irrespective of whether the package is used, and the package is reduced to a set of typeforwarders. As part of this move, the scripting define UNITY_DOTS_DEBUG no longer controls extra checks in players in Native and Unsafe collections (although it still does control many extra checks in Entities); now you need to use the Checked (or Debug) managed code variant to include those checks in player builds.
KernelAPI changecom.unity.collections
Added: Added support for replicating non-uniform (3D) scale via the Unity.Transforms.PostTransformMatrix component, using the new built-in PostTransformMatrix3DScaleVariant. Rather than sending the full float4x4 matrix, only the per-axis scale is extracted and replicated (as three quantized floats by default). Existing ghost prefabs will have the DontSerializeVariant set by default for PostTransformMatrix to not break existing behavior. Use the new SubType = GhostFieldSubType.PostTransformMatrixScale to create your own Variants.
Netcode for EntitiesAPI change
Added: Added PhysicsSceneLoadScope which can be used to control which physics scene is used when loading a unity scene asset. This effectively allows grouping multiple unity scenes under a specific physics scene.
PhysicsAPI change
Added: Added "ChainSegment.UpdateSegments()" to update the segments. This compliments the existing "ChainSegment.CreateSegments()".
Physics 2DAPI change
Added: Added "Get()" extension method to all Physics "object" types to allow users to work around not being able to use a setter property on a returned object without first assigned to a local variable. Added to PhysicWorld, PhysicsBody, PhysicsShape, PhysicsChain, PhysicsJoint and all concrete PhysicsJoints.
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 "massOverride" property to PhysicsBody and PhysicsBodyDefinition that selects which of the mass, rotational inertia and center of mass use authored values instead of being calculated from the attached shapes.
Physics 2DAPI change
Added: Added a "PhysicsEvents.WorldTransformPlaneChange" event which is called when a PhysicsWorld transform plane is changed.
Physics 2DAPI change
Added: Added a batch overload of "SetOwnerUserData()" to PhysicsShape, PhysicsBody, and PhysicsJoint.
Physics 2DAPI change
Added: Added a selectedDrawing property to PhysicsBody, PhysicsShape and PhysicsJoint, batch SetSelectedDrawing methods, and PhysicsWorld.ClearDrawSelected, so individual objects can be drawn persistently when the world is drawn.
Physics 2DAPI change
Added: Added a static PhysicsWorld.DrawShapes method that draws a span of shapes into their worlds.
Physics 2DAPI change
Added: Added an autoAxis option to the slider and wheel joint definitions that derives the joint axis from the joint anchors when the joint is created.
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 an owner key overload to PhysicsShape "DestroyBatch()", PhysicsBody "DestroyBatch()", and PhysicsJoint "DestroyBatch()", plus their PhysicsWorld "DestroyShapeBatch()"/"DestroyBodyBatch()"/"DestroyJointBatch()" equivalents.
Physics 2DAPI change
Added: Added an owner overload to PhysicsShape "CreateShapeBatch()" and PhysicsBody "CreateBatch()", plus the PhysicsWorld "CreateBodyBatch()" equivalent.
Physics 2DAPI change
Added: Added batch setters for user data, owner user data, contact filter and surface material on PhysicsShape, PhysicsBody and PhysicsJoint.
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 PhysicsWorld.drawAtTransform and PhysicsWorldDefinition.drawAtTransform to draw bodies, shapes, and joints at their assigned Transform's pose instead of their simulated physics pose.
Physics 2DAPI change
Added: Added PhysicsWorld.ExplosionDefinition.useTriggers to control whether an explosion applies an impulse to trigger shapes.
Physics 2DAPI change
Added: Added PhysicsWorld.minEdgeLength, PhysicsWorld.minPolygonEdgeLength, and PhysicsWorld.minPolygonCollinearDistance to expose geometry validity thresholds, and an areEdgesValid property to SegmentGeometry, CapsuleGeometry, ChainSegmentGeometry, and PolygonGeometry to check a geometry's edges against them.
Physics 2DAPI change
Added: Added PhysicsWorld.stateHash, which returns a hash of the current state of the world. Use it to compare the state of two worlds, for example when checking that a simulation is deterministic. The value is recalculated over the whole world each time you read it, so avoid reading it every frame.
Physics 2DAPI change
Added: Added PhysicsWorld SetName() and GetName() methods to allow assigning of a 64 character name to help with world identity during debugging.
Physics 2DAPI change
Added: Added: "PhysicsMath.TryGetRelativeMatrix2D()" and "PhysicsMath.TryGetPlaneMatrix2D()", which compute a 2D relative transform without ever returning a NaN result for a degenerate or flattened scale. These are often required when authoring components and help calculate relative transformation between two in a Transform hierarchy.
Physics 2DAPI change
Added: Added: PhysicsBody, PhysicsShape and PhysicsJoint now each have a "drawTarget" property, selecting which Unity editor views (Scene view, Game view or both) the object is drawn into when the world is drawn.
Physics 2DAPI change
Changed: Added an optional Display Name property to ProfilerCounterDescriptor for improved readability.
ProfilerAPI change
Added: Implemented visibility, focus and resizability APIs for Windowing.
QNXAPI change
Added: Implemented window focus, visibility, and destruction event system APIs in Windowing.
QNXAPI change
Added: Added CoreCLR ScriptingImplementation enum value exposing CoreCLR player support.
ScriptingAPI change
Added: Added the IVariantSelector interface, which you can implement to define custom variants for the localization system.
ScriptingAPI change
Added: New public API, Detach(node) and DetachChildren(node) on Hierarchy and HierarchyCommandList. A detached node keeps its data map entry but is unreachable from Root.
ScriptingAPI change
Added: New public API, IHierarchyNodeTypeHandlerViewModelState, and GetOrCreateHandlerState<T>, TryGetHandlerState<T> and DestroyHandlerState on HierarchyViewModel, for node type handler state that belongs to a single view model. HierarchyNodeTypeHandlerBase.SearchBegin, SearchMatch and SearchEnd gained overloads taking the HierarchyViewModel running the search.
ScriptingAPI change
Added: [Scripting] IL2CPP code coverage support.
ScriptingAPI change
Added: Added SetBufferData to Raster/Unsafe command buffers and allow SetComputeBufferData for all APIs.
SRP CoreAPI change
Added: Added TestRunProfiler custom spans API.
Test FrameworkAPI change
Added: Added read-only glyph metrics API to FontAsset.
TextAPI changeUUM-150976
Added: Added LayoutRebuilder.IsLayoutRebuildPending and LayoutGroup.IsLayoutPending() to check whether a UI element still has a pending layout rebuild.
uGUIAPI change
Added: Added api for measuring Min-content text.
UI ToolkitAPI change
Added: Added APIs FindPanelRenderer and FindUIDocument.
UI ToolkitAPI change
Added: Added support to capture a VisualElement to a RenderTexture.
UI ToolkitAPI change
Added: Added the public UnityEngine.EventCommandNames class, which provides the command name constants that the Editor sends with its command events, such as Copy, Paste, and FrameSelected.
UI ToolkitAPI change
Added: Added z-index USS property support for controlling the stacking order of overlapping elements within a stacking context. Enable via Project Settings > UI Toolkit > Experimental Renderer Features > Enable Z-Index.
UI ToolkitAPI change
Added: Added UxmlSerializedDataPropertyDrawer, UxmlAttributeField, and UxmlAttributeFieldDecorator to support custom property drawers for UI Toolkit elements in the Inspector.
UI ToolkitAPI change
Added: Experimental VisualElement Components.
UI ToolkitAPI change
Added: Added 4 overloads for DrawProceduralIndirect that add a count parameter and an optional indirect count buffer for Multi Draw Indirect.
URPAPI change
Changed: Added CLI args to Integration and Runtime test runners to select target browser and platform.
UTRAPI 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: Added performance.measureUserAgentSpecificMemory to web diagnostics overlay to calculate used JS memory.
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.