Fixed "Strip 2D Unused Variants" stripping a Light 2D shader variant that is still in use, which made some 2D lights render magenta in Player builds when another light was culled.
7000.0.0a9
Alpha · Released Oct 13, 2026 · Changeset 69e891f60f9a · 912 release notes
69build score
Upgrade risk+29Net cleanup+21Live debt+19
cohort: alpha (41)
Fixed a crash that could occur when a Sprite was destroyed while the render thread was still uploading its vertex buffer.
Fixed a crash when entering Play Mode with a Tilemap whose tiles re-enter the Tilemap API during StartUp.
Fixed slow managed calls to Unity.Tilemaps.GridUtility methods on CoreCLR. (UUM-153898) First seen in 7000.0.0a9.
Fixed Unstable Test.
Fixed indexer logic to handle when low utilization and thermal values cause performanceAction to become StateAction.Increase, indicating we have headroom to increase quality.
Adaptive PerformanceFix
Fixed WebCamTexture taking several seconds to resume after the app regains focus or another app releases the camera, for example in split-screen mode.
Dedicated discrete integer curve support in AnimationClip to fix support of a limited ranges of values for discrete integer properties.
Fixed an issue where a "File exists" error was shown when creating a project or duplicating a folder on an exFAT drive on macOS.
Fixed edits to a .meta file being overwritten when the file was changed while its asset was importing out of process.
Asset PipelineFix
Fixed repeated out-of-process imports and repeated version control prompts when an AssetModificationProcessor declined saving a .meta file that an importer had upgraded.
Asset PipelineFix
Fixed a performance regression in audio processing caused by profiler instrumentation running when no profiler data was being captured.
Fixed an issue where the Build Analysis window listed a build started during another build, such as a content directory build started during a Player build, as an unrelated build instead of nesting it under the build it ran inside. (UUM-153441) First seen in 7000.0.0a3.
Fixed builds added to the build history while the Build Analysis window was closed not appearing in the build list when the window was opened.
Build PipelineFix
Fixed the build count in the Build Analysis window footer not following the search filter. The footer now shows the number of matching builds while searching, and shows the build limit count only from 70% of the limit.
Strip the AMD FidelityFX DLL from player builds when AMDUnityPlugin is not enabled.
OrbitalFollow cameras using the InheritPosition blend hint with position damping now inherit the outgoing camera's direction correctly, and jerk less on the blend back.
Fixed the -force-d3d12-debug command line argument reporting a missing Windows "Graphics Tools" optional feature when the D3D12 debug layer library was absent from the build instead.
Added Platform Define Support for Multi-Target Platform.
Added warning on "New Analysis" for imported Project Auditor reports.
AutoStaticsCleanup generator errors are now visible in console.
Ensure some memory areas missing roots are now rooted. Editor: MonoScriptInfoScraper and some il2cpp initialisation.
Fixed a crash on startup when the Unity Editor Software Terms had not been accepted and the terms file was missing, empty, or could not be read.
Fixed an issue where the Project Auditor window threw an exception on every open when its autosaved report was empty or truncated, instead of discarding the report with a warning.
Fixed bug where InstantiateAsync would not account for parent transform scale when Instantiate would.
Fixed crash with ATG measure unconstrained height.
Fixed dragging multiple objects of the same type dropping them one by one when the drop target rejects them as a group, and the drag showing as allowed while hovering.
EditorFix
Fixed GameObjects not baking correctly when their properties change.
Fixed Hierarchy and Scene View search synchronisation.
Fixed issue with OS Fallbacks overriding the assigned sprite asset.
Fixed ligatures breaking the input field in TMP.
Fixed process handle leak on Windows when the Editor launches and terminates external processes. (UUM-155924) First seen in 7000.0.0a8.
Fixed the Animation Curve and Gradient UXML parsing so it uses InvariantCulture.
Fixed the Project Auditor "Migrate to URP" page header showing a trailing separator when no analysis has been run.
Fixed UI elements with a non-zero Z position disappearing in the Scene view when the camera gets close to them.
Fixed UI guideline inconsistency for Sprit Editor window preference. (UUM-155944) First seen in 7000.0.0a8.
Fixed warnings when undoing "Auto Generate Animation" in Button.
Graphics: re-evaluate the APV baking set when the active scene changes.
Project Auditor: allow users migrating to URP to select their target pipeline, and run converter issues without using the separate UI window.
Project Auditor: correctly recognize good URP quality asset settings.
Project Auditor: don't show blank group when Target Framework version is unknown.
Project Auditor: ensure UI correctly pluralizes "seconds" when listing analysis times.
Project Auditor: Fixed a NullReferenceException thrown when a null rule list, or a list containing a null Rule, was passed to AnalysisParams.WithAdditionalDiagnosticRules.
Project Auditor: remember expanded state in the issue tables.
Stop missing animation trigger warnings being logged on every transition, on every keystroke of invalid transition names.
Updated TMP assets to make the assets compatible with ATG and reduce the default build size.
Fixed managed stack frames in IL2CPP crash reports showing no file name or line number when Cloud Diagnostics crash reporting is enabled in non-development builds.
Fixed an InvalidOperationException in the Entity Inspector when inspecting an entity that has a TransformRef. (UUM-155791) First seen in 7000.0.0a7.
Fixed EntityManager.Debug.IsSharedComponentManagerEmpty returning true while unmanaged shared component values were still in use.
EntitiesFix
Fixed a horizontal scrollbar that appeared in the inspector when a state machine transition was selected, even when the content fit the inspector width.
Fixed a NullReferenceException thrown when setting the Title, Subtitle, Tooltip, DefaultColor or FillAmount of a Node created from script before setting its Position.
Fixed an issue where short portal names were cut off because the portal node did not keep a minimum width.
Fixed the name of the Graph Toolkit Window in the Overlay Preferences.
Fixed a CPU performance regression when submitting draw calls in Scriptable Render Pipelines.
Fixed a crash on Vulkan when pre-warming pipeline state objects with GraphicsStateCollection.WarmUpProgressively.
Fixed SystemInfo.supportsConservativeRaster returning false and conservative rasterization being unavailable on Vulkan on GPUs that report a maxExtraPrimitiveOverestimationSize of 0, such as AMD GPUs.
SystemInfo.supportsParallelPSOCreation now correctly returns true on Android devices with a single core enabling parallel PSO creation.
Fixed GC marking on InlineArray types.
IL2CPPFix
Fixed issue where RuntimeTypeHandle equality checks may fail.
IL2CPPFix
Fixed missing GC write barrier in Thread.VolatileWrite(ref object, object).
Raise ArrayTypeMismatchException if invalid generic delegate is stored in covariant array.
Fixed long Editor tooltips, such as the backup confirmation toggle in Project Auditor, showing empty space to the right of their wrapped text.
Fixed the error "type is not a supported string value" that was logged in the Console when viewing binding properties in the Input Actions Editor.
Fixed the Input Debugger device window showing a blank window after the device was disconnected and reconnected.
This fixes Windows' Xbox Game Bar and macOS overlays (Spotlight et al). On Windows, Steam/Discord/NVIDIA overlays work as always.
Fixed the Editor slowing down in batch mode and automated test runs on macOS when one of its windows lost focus.
macOSFixWindows
Unity Transport: Fix a small memory leak that would occur when creating TLS/DTLS sessions.
ComputePenetration between a scaled Sphere and Convex Mesh Collider will now return the correct result.
Fixed Rigidbody.mass accepting a NaN value, which made the body pass through all colliders.
Added missing "PhysicsWorld.DrawPoint" overload accepting a span of points to draw.
Added missing public argument validation for various Physics Core 2D methods.
Fixed an issue where the New Timeline view's Zoom when changing event setting had no effect.
ProfilerFix
Fixed the Jobs Profiler Jobs Info table flickering between rows and an empty list while profiling in Live mode.
Added performance of three expensive [OnCodeLoaded] sites.
Fixed errors logged on every domain reload when code coverage is enabled in the CoreCLR Editor. (UUM-155271) First seen in 7000.0.0a7.
Improved performance of statics analyzer.
Fixed Search's ObjectField multi-value display.
Fixed an Editor crash when increasing the size of an array field in the Inspector.
Fixed a possible Editor crash when several graphics jobs requested the same warmed-up shader variant at the same time.
ShadersFix
Renamed the Volume override "Toggle All" and "Toggle None" actions to "Enable All" and "Disable All", and updated the ALL/NONE tooltips to match.
Enabled CanCallNativeStaticLibrary test for tvos.
Fixed an issue where UI elements, such as Sliced and Tiled Images and Text, were not updated when the Canvas Reference Pixels Per Unit, Scale Factor, Pixel Perfect or Render Camera changed after they were first drawn.
Fixed Blocking Objects raycasts in GraphicRaycaster being silently skipped in IL2CPP builds due to code stripping.
Fixed a crash when the Editor sat idle in UI Staging Mode with filters applied to an element.
Fixed a NullReferenceException and broken UI Builder styling when the filter property uses a USS variable with an invalid value.
Fixed a NullReferenceException when applying an SVG sprite's custom pivot in the Sprite Editor, which also left the pivot unchanged.
Fixed a per-element style lookup that ran on the panel attach and repaint paths even when no element used -unity-curvature.
Fixed a USS file failing to import and losing all of its styles when a function such as linear-gradient() had an empty argument.
Fixed an Editor crash when exiting Play mode with the Hierarchy window open and a UIDocument whose list items are cloned from the document's own UXML.
Fixed ArgumentNullException and MissingReferenceException errors thrown when interacting with a deleted USS asset that was open in UI Builder.
Fixed custom backdrop filters that blend their output showing content from other elements and flickering.
Fixed IResolvedStyle missing the gridTemplateColumns, gridTemplateRows, gridAutoColumns and gridAutoRows properties.
Fixed PanelRenderer not updating its parent PanelRenderer and visual tree when its GameObject was reparented at runtime.
Fixed solid and gradient fills missing from VectorImages saved with Painter2D.SaveToVectorImage on WebGL 2 and on some OpenGL ES 3.0 devices, and an ArgumentOutOfRangeException when a solid fill or stroke was painted before a texture fill.
Fixed Style Rule Inspector affordances, override bars, and list edits not refreshing after property changes on a selector target.
Fixed TextMeshPro text on a sub-mesh not reappearing after the sub-mesh GameObject was disabled and enabled again.
Fixed the Add and Remove buttons in the Gradient Editor staying enabled when the maximum or minimum number of color stops was reached.
Fixed the background gradient in the UI Toolkit Inspector defaulting to white-to-white instead of the black-to-white default used by UI Builder.
Fixed the content of a ListView or TreeView with horizontal scrolling moving horizontally when scrolling vertically.
Fixed the gradient angle field in the UI Builder and UI Toolkit Authoring inspectors, which only accepted degrees; it now offers degrees, gradians, radians and turns, and keeps the chosen unit in the stylesheet.
Fixed the invert and contrast filters producing colors that were too bright on translucent pixels, such as after opacity in a backdrop-filter chain or on the anti-aliased edges of filtered elements.
Fixed the Localization Tables and Scene Controls windows ignoring built-in localization in projects that use it.
Fixed the UI Builder Set Variable list on a selector not showing variables declared in another USS file on the same UXML.
Fixed the UI Toolkit editing stage opening while the legacy Hierarchy was in use, which left the Hierarchy window empty or showing the wrong scene.
Fixed the variable suggestion list being cut off when setting a variable on a stop in the Gradient Editor.
Fixed translucent backdrop-filter output drawing opaque or too dark in the Game view, for example under the default URP HDR settings. (UUM-149705) First seen in 7000.0.0a8.
Fixed USS filter functions with more than four arguments not applying; the extra arguments are now ignored and a warning is logged.
UI Builder: Fixed the data source path completer popup in the binding window sometimes staying open after the window was moved.
Fixed Project Auditor URP settings issues for Quality Levels naming the Quality Level instead of the assigned URP asset.
Fixed exporting visionOS Xcode project fails after disabling Symlink Sources.
In Web builds that use AudioMixers, some audio errors were previously firing, and have now been resolved.
WebGPU Fix compressed texture mipmaps.
WebGPU fix for incorrectly mapped ASTC sRGB formats.
Added DisplayInfo.RegisterLayoutChangedCallback and DisplayInfo.UnregisterLayoutChangedCallback, which notify the application when a display is connected, disconnected or reconfigured.
WindowsFix
Removed extraneous files under CoreCLR\native in builds when using Create Visual Studio solution build setting.
Fixed an issue where URP scenes rendered black on Meta Quest 2 with Vulkan and MSAA, for example scenes with decals and no transparent objects.
Fixed SubsystemWithProvider.Start not throwing an ArgumentNullException when called after the subsystem was destroyed, which restarted the destroyed provider.
Quad Views: Fixed issue regarding post processing being applied to both the inner and outer passes separately.
Quad Views: Fixed issue where lights were culled within view when forward+ was enabled, causing artifacts in the periphery.
Fix ArgumentException when using overlay camera in 2D Renderer.
Fix case where crash with multiple stack traces when Sprites with a high resolution get Sliced to a Grid with a small cell size in the Sprite Editor
Fix case where ideo is not rendered when the VideoPlayer GameObject is disabled and re-enabled after playback starts while using Material Override render mode
Fix intermediate texture not created when requested by render pass
Fix issues where Unsaved Changes Detected pop-up are doubled after editing Sprite Atlas asset if it was open on multiple Inspector windows and choosing the Discard option
Fix section headers for 2D/Grid Brush and 2D/Tile Palette preferences
Fixed "Strip 2D Unused Variants" stripping a Light 2D shader variant that is still in use, which made some 2D lights render magenta in Player builds when another light was culled.
Fixed 2D lights changing position and orientation when rotating an Android device in projects built with Vulkan and Apply display rotation during rendering enabled.
Fixed 2D projected shadows not rendering on some platforms
Fixed a "No script asset for ShadowCasterPath" warning when you undo or redo a Shadow Caster 2D shape edit in Play mode.
Fixed a crash that could occur when a Sprite was destroyed while the render thread was still uploading its vertex buffer.
Fixed a crash when entering Play Mode with a Tilemap whose tiles re-enter the Tilemap API during StartUp.
Fixed a NullReferenceException thrown every frame by a 2D Light of type Provider whose Light2DProvider returns no mesh.
Fixed a NullReferenceException when a Light 2D created from a script is set to Freeform without a shape path.
Fixed an "ArgumentException: Scene file not found" error when building with a deleted scene in the build list and Strip 2D Unused Variants enabled.
Fixed an "Index buffer element is out of bounds" error that removed a Shadow Caster 2D's shadow when its outline had a sub-shape with fewer than three edges and 2D Shadow Geometry was set to Enhanced.
Fixed an issue where dragging the Sprite Editor Window Zoom Level range in Preferences could set the minimum zoom below 50%.
Fixed an issue where lowering the maximum zoom level in the Sprite Editor Window preferences allowed the Sprite Editor to zoom out beyond the minimum zoom level.
Fixed an issue where the Shadow Displacement port on the Shadow Caster 2D Shader Graph target was read in the caster's local space instead of world space.
Fixed an issue where the Sprite Editor Window Zoom Level range in Preferences stayed wider after being dragged to the lower end and back.
Fixed child GameObjects of a Tile's instantiated GameObject remaining in the Scene after exiting Play mode or reloading the Scene.
Fixed duplicate global light error when building a player.
Fixed four errors logged every frame for each Light 2D that uses a custom Material whose shader does not declare the 2D lighting keywords.
Fixed inconsistent icon sharpness in the Tile Palette window.
Fixed IndexOutOfRangeException errors thrown while editing a Freeform Light 2D shape whose edges overlap.
Fixed Render Objects feature failing when depth buffer is disabled.
Fixed Shadow Caster 2D so that the shape outline is drawn in the Scene view for every Casting Option, including Self Shadow and No Shadow.
Fixed the active Brush changing to the last selected Brush Pick when the Brush Pick filter was toggled on and off.
Fixed the camera sorting layer texture resolution being affected by the Render Scale setting on the 2D Renderer.
Fixed the Grid Selection Offset, Rotation and Scale fields in the Inspector not updating while dragging a Grid Selection gizmo in the Scene view.
Fixed the Grid Selection transform and color fields accepting input that was silently discarded when the selection contains no Tiles. The fields, selection tools and Delete Selection button are now disabled in that case.
Fixed the Open Tile Palette button and Tilemap Focus dropdown not filling the full width of their Scene view overlay.
Fixed the Sync Active Palette button in the Tile Palette window being cut off or hidden when the window is resized horizontally.
Fixed Tilemap tile data potentially being copied incorrectly when refreshing tiles.
Fixed Tiles in the Tile Palette window rendering in solid grey after exiting Play mode when Domain Reload is disabled.
Fixed Unstable Test.
Fixed URP 2D editor-only icons being included in player builds.
Fixes LineRenderer not initializing correctly when toggling enable on game object.
Inspector - Unsaved Changes Detected pop-up shows for each Inspector window when editing Sprite Atlas asset
Platform specific overrides panel for Sprite Atlas asset does not support Undo or Redo operations
Reduced CPU cost of 2D lights and shadow casters that do not use a custom material.
The Search window no longer renders blank for a few seconds the first time it opens.
Update error log when accessing index out of bounds meaningful.
Fixed Adaptive Performance settings being deleted from a Build Profile when an invalid clipboard payload was pasted into them.
Fixed indexer logic to handle when low utilization and thermal values cause performanceAction to become StateAction.Increase, indicating we have headroom to increase quality.
Adaptive PerformanceFix
Fixed pasting a Build Profile with Adaptive Performance disabled not clearing the Adaptive Performance settings of the profile it was pasted into.
Fixed pasting a clipboard that holds no Adaptive Performance settings into a Build Profile silently doing nothing instead of reporting that the clipboard cannot be pasted.
Fixed pasting a modified clipboard payload into a Build Profile adding an unrelated ScriptableObject as a hidden sub-asset and removing the existing Adaptive Performance settings.
Fixed a crash in the Editor and development builds when an Experimental.AI.NavMeshQuery created with Allocator.Temp was disposed after its NavMesh had been destroyed.
AIFix
Fixed a crash when a copy of a NavQueryBuffer was used for a pathfinding operation after the buffer it was copied from had been disposed. In the Editor and in development builds such a copy now reports itself as disposed, the same as a buffer that was disposed in place.
The sourceBounds from a NavMeshData object generated far from origin were incorrectly including the origin. These bounds now wrap tightly around the meshes used for building the NavMesh.
Fix "Failed to find target with hash string android-37" when Target API Level 37 is selected.
fix SIGSEGV on Application.Quit() when the cursor was ever set
Fixed a false-positive Java heap leak failure in the Android player-unloading integration test by excluding first-reload warmup from the baseline.
Fixed CanBuildWithSymlinkSources flakiness caused by parameterized runs sharing a temp export directory.
Fixed freeze when relaunching GameActivity immediately after unload in UaaL mode.
Fixed the Compile SDK Version dropdown in Android Player Settings listing API levels that are lower than the minimum supported compile API level.
Fixed WebCamTexture taking several seconds to resume after the app regains focus or another app releases the camera, for example in split-screen mode.
Stop requiring minSdk/targetSdk platform SDK to be installed in CheckAndroidSDK.cs.
Crash when calling AnimationUtility.SetAdditiveReferencePose` with a null clip or referenceClip.
Dedicated discrete integer curve support in AnimationClip to fix support of a limited ranges of values for discrete integer properties.
Fixed an issue where clicking in the "Edit Key" fields of the Animation Window curve view wouldn't deselect the text in the field.
Fixed Animator transitions with Bool or Int conditions evaluating incorrectly after the referenced parameter was deleted and re-created with a different type.
Fixed methods with an AnimationEventInfo parameter not being listed in the Function dropdown of the Animation Event Inspector.
Fixed the Select Game Object window not appearing when selecting Other... from the Animation Preview Model dropdown a second time.
On tvOS, pressing the Menu button now exits fullscreen video playback in Full, Minimal, and CancelOnInput control modes, not just CancelOnInput.
Fixed a player crash when instantiating a prefab from an AssetBundle that was reached through a reference to a child object of a prefab in another AssetBundle.
Fixed AssetBundle build reports not recording time or log messages for pre/post-process build callbacks.
Fixed AssetBundle content hashes changing between builds of unchanged content with Addressables or the Scriptable Build Pipeline, causing players to redownload unmodified bundles. Affected bundles get a new hash on the first build after upgrading.
Fixed a docked Import Activity window disappearing and showing as "Failed to load" after maximizing and restoring a different docked window.
Fixed an Editor crash in Transform when an asset reimport unloaded objects that were still loaded.
Fixed Asset Import Workers running on Direct3D12 when the Editor was started with a different forced graphics API, such as -force-d3d11. Workers now inherit the graphics API requested on the Editor command line.
Fixed default presets for some importers, such as SVGImporter, no longer being applied after restarting the project.
Enabled 3 Directory monitoring tests with CoreCLR
Fix ActiveRefreshImportMode not returning a valid value when Editor is launched with command line argument: -refreshImportMode OutOfProcess
Asset PipelineFix
Fix warning saying added ScriptedImporter is not running out of process when it is
Fixed "ScriptableSingleton ... already exists" warnings appearing in the Console when a package creates its settings asset, for example after installing the XR Composition Layers package.
Fixed a crash on Editor shutdown caused by an asset import worker timer callback running after the worker manager was destroyed.
Fixed a crash when opening a project that contained a manager asset holding an object of the wrong type.
Fixed a crash when opening a project with a corrupted Library.
Fixed a random Editor crash on shutdown caused by a data race in the asset database script artifact bookkeeping.