Unity 6.4 (6000.4) introduces several new features and improvements.
To read about all of the changes and known issues in this version of Unity, refer to the Unity 6.4 Release Notes.
To find the release notes for other releases, refer to the Unity download archive.
To watch a video summary of the new features and improvements in this release, refer to the official What’s New in Unity 6.4 video.
To read about changes made to packages that were updated as part of this release, refer to the documentation of those packages.
If you’re upgrading existing projects from Unity 6.3 (6000.3), refer to Upgrade to Unity 6.4 for information about how your project might be affected.
Review the new features and improvements for Unity 6.4 in these areas:
This section outlines recent updates to Unity’s 2D system.
If your project uses the Universal Render Pipeline (URP), you can now customize and extend the rendering process in a 2D project. Create a custom render pass in a C# script and inject it into the URP frame rendering loop. For more information, refer to Custom rendering and post-processing for 2D in URP.
You can now create sprite atlases at runtime using the new SpriteAtlasManager.CreateSpriteAtlas API. For more information about sprite atlases, refer to Sprite atlasGraphics: A utility that packs several sprite textures tightly together within a single texture known as an atlas. More info. 2D: A texture that is composed of several smaller textures. Also referred to as a texture atlas, image sprite, sprite sheet or packed texture. More info.
See in Glossary.
This section outlines recent updates to Unity’s animation system.
State machines can now start in a non-default state. This behavior stops the one-frame delay the animator needs to transition from its default state to another state.
To enable this option, in the Animator Controller, select Evaluate Entry Transitions On Start. This option is true by default for new controllers, and false by default for existing ones.
This section outlines recent updates to the Editor’s general workflows and user interface.
The Build Profiles window now includes the following improvements:
In the Scene view, you could already dock overlays in corners or as toolbars. You can now dock overlays in dynamic panels to further customize your workspace.
Dynamic panels are collapsible and flexible dockable areas on either side of the Scene view window between the viewport and the edge of the window. You can resize a dynamic panel, and inside it you can stack and reorder overlays in a single dock zone. Use a dynamic panel to group related overlays together for specific tasks and avoid cluttering the Scene view.
To make docking more intuitive and efficient, layout states (panel, horizontal, or vertical) aren’t preserved when an overlay docks in a dynamic panel. The overlay adapts to the layout of the dynamic panel.
To highlight which dock zones are available to an overlay in the Scene view, drag an overlay.
To save your overlay configurations to reuse in other projects, refer to Create and manage overlay presets.
Improved the Scene view’s grid and snap workflow:
To discuss these changes, go to Feature Highlight: Improved Grid and Snap workflows on Unity Discussions.
Added custom position and rotation to the grid. You can now transform the grid by applying a selected GameObject’s handle’s position and rotation to the grid or by entering specific position and transform values.
Absolute grid snapping works well for levels composed of rectangular areas aligned to grid lines. However, if your level elements are rotated (such as angled bridges or pathways), absolute grid snapping might be less useful. In this case, set a position and rotation for the grid to make it more useful.
To add custom position and rotation to the grid:
Redesigned the Grid and Snap overlay to make it clearer and quicker to access. Made the following changes to the Grid and Snap overlay:
To access the Grid and Snap overlay, press ` to open the Overlay menu and select Grid and Snap.
Consolidated multiple Grid and Snap dropdown menus into a single Grid and Snap Settings menu. This new menu contains all grid and snapping settings.
To access the new Grid and Snap Settings menu, select Open Grid and Snap settings in the Grid and Snap overlay.
Use the Grid Tool Handle Rotation to ensure that the tool’s handle rotation is aligned to the grid’s rotation. Note that if the handle is not aligned to the grid, the snapping behavior falls back to incremental snapping.
To enable the Grid Tool Handle Rotation, in the Tool Settings overlay, select Grid in the Tool Handle Rotation setting dropdown.
You can now set Grid Size and Incremental Snap Size in two separate settings in the Grid and Snap overlay rather than in one setting. This functionality was restored based on user feedback.
Added the Grid submenu to the Scene view context menu which contains quality-of-life grid settings.
For example, you can select:
To access the Grid submenu of the Scene view context menu, select a GameObject in the Scene view and right-click.
Grid and Snap workflow improvements contain new shortcuts you can customize. You can customize these shortcuts in the Shortcuts window.
This section outlines recent updates to the Entities system.
The Entities, Collections, Mathematics, and Entities Graphics packages are implemented in Unity 6.4 as Core packages. These packages ship with the Editor, which allows the development team to integrate the Entity Component System (ECS) into the engine more quickly. This setup supports the ECS for Unity initiative and ships the features faster and more incrementally.
Unity 6.4 replaces the InstanceID property with a new EntityId type.
EntityId becomes the preferred type for identifying objects in Unity and InstanceID methods are marked as deprecated.
For more information, refer to the EntityId API documentation.
For more information about this change, refer to the following post on Unity Discussions: ECS Development Status - December 2025.
EntityId can’t be represented by a single int value, so there are assumptions you should avoid. For example, the following behaviors might not work:
EntityId to and from an int type.EntityId represents an asset-loaded object.Object.GetHashCode method to get an EntityId.ToString method to serialize into a string, and using int.Parse to get it.EntityId to sort by creation order.EntityId (in InstanceID, this bit was unused).
This section outlines recent updates to Unity’s graphics systems.
The Rendering Statistics window has been renovated and displays more useful metrics for analyzing the rendering complexity of the scene in Play mode. You can now inspect the number of draw calls optimized by the Scriptable Render Pipeline (SRP) Batcher, the GPU Resident Drawer, the BatchRendererGroup API, and GPU instancing. The window also displays more accurate frame time metrics. For more information, refer to Rendering Statistics window reference.
Debugging and previewing Mesh LODs in the Scene view is now easier. The Gizmo menu lets you toggle Scene view labels that display the active LOD level of GameObjects. The Mesh LOD Inspector window also now includes a selection bar, which you can drag to display the LOD level the camera renders at each ratio. For more information, refer to Mesh LOD.
You can no longer target the PVRTC texture format when you import a texture. Use the ASTC or ETC texture formats instead. For more information, refer to GPU texture formats reference.
URP Compatibility Mode is now fully removed for custom render passes. The URP_COMPATIBILITY_MODE scripting define symbol that you could previously use to convert your project has also been removed. Use Render Graph for your custom render passes instead.
The Render Graph samples have been improved by including the latest APIs and covering more use cases.
The UI of the Render Pipeline Converter for URP has been redesigned and improved. You can also now use the Render Pipeline Converter to convert shaders from the Built-In Render Pipeline to HDRP.
In HDRP, you can now use Volumetric Lighting Density Cutoff to disable fog lighting below a specified density. This allows you to improve performance in scenes with lots of fog volumes. For more information, refer to Fog Volume Override reference and Troubleshoot fog.
Added new functions to the GraphicsStateCollection API to improve PSO tracing and warming. You can now modify existing PSO collections without needing to re-trace the collection. You can also now generate new GraphicsStates from Mesh and Material arrays.
For more information about PSO tracing and warming with the GraphicsStateCollection API, refer to Tracing and warming up PSOs and the GraphicsStateCollection API documentation.
Shader Graph now includes a Terrain Properties node that allows you to pass input properties from the actively rendered Terrain into the Contexts of a Terrain Lit shader graph.
This section outlines recent updates to Unity’s Input System.
MonoBehaviour scripts working with the Input System now support the mouse events OnMouseDown, OnMouseDrag, and OnMouseUp.
You can use these events to migrate existing mouse events from Input Manager to Input System.
This section outlines recent optimization updates.
This section outlines recent updates to Unity’s Adaptive Performance features.
Improved the workflow for Adaptive Performance with a redesigned UI for managing custom scalers. You can now add, remove, and configure your ScriptableObject-based scalers directly in a scaler profile in the Editor.
For more information, refer to Create custom scalers and Adaptive Performance provider settings reference.
Extended the Basic provider to support the following consoles:
You can now use Adaptive Performance features, such as automatic performance scaling and bottleneck detection, on these console platforms.
To reduce the file size of your build, you can now disable the built-in com.unity.modules.physics module in the Package Manager window.
Note: If you use local volumes in your project, keep the com.unity.modules.physics module enabled for these volumes to work.
For more information, refer to Reducing the file size of a build.
The Project Auditor package is now part of the Unity Editor by default. To learn more, refer to the Project Auditor section of the Unity manual.
To use the Project Auditor in Unity versions 6.3 and earlier, you can use the Project Auditor package. To learn more, refer to the Project Auditor package documentation.
This section outlines recent updates to platform-specific tools and settings.
This section outlines recent updates to the Windows platform.
Unity now supports Microsoft’s DirectStorage for file I/O operations, providing faster asset loading and reduced CPU overhead. DirectStorage is used for loading specific asset types, such as textures, meshes, and entities asset data in DOTS projects. This feature optimizes performance of your application by utilizing high-speed storage drives more efficiently when loading these assets. For more information, refer to Optimize performance using DirectStorage on Windows.
This section outlines recent updates to the Embedded Linux and QNX platforms.
The Windowing API is enhanced to detect and respond to any change in the game window position and resolution at runtime on Embedded Linux and QNX platforms.
The GameWindow class provides two ways to monitor window changes:
PositionChangedThisFrame and ResolutionChangedThisFrame methods to detect any changes in position or resolution of the GameWindow during the current frame.RegisterPositionChangedCallback and RegisterResolutionChangedCallback to register functions that are invoked when position or resolution of the GameWindow changes at the end of each frame.You can use these approaches to execute custom application logic when the game window changes occur at runtime.
This section outlines recent updates to the Web platform.
You can now enable multithreading for Web builds by using the Burst compiler. C# jobs marked with the [BurstCompile] attribute compile into highly optimized native code that runs in parallel on background worker threads. Jobs without this attribute continue to run on the main thread.
For more information, refer to Multithreading with Burst in Unity Web.
Added support for the Microphone API to the Web platform. You can now capture audio from a user’s microphone in your web applications, enabling features like in-game voice chat or voice commands.
For more information, refer to the Microphone API documentation and Audio in Web.
Added support for the GraphicsStateCollection API for WebGPU. To learn more, refer to Introduction to PSO tracing and warming.
This section outlines recent updates to the Programming system.
For any custom class assigned to a field marked with the [SerializeReference] attribute, Unity now validates that the class and all of its ancestors in the class hierarchy are decorated with the [Serializable] attribute. If the [Serializable] attribute is missing from any ancestor of the class assigned to a [SerializeReference] field, then the Unity Editor issues a warning. For more information, refer to Serialization rules.
Unity Graph Toolkit provides a comprehensive framework for developing node-based tools within the Unity Editor. It enables you to create your own graph tool with custom nodes while providing all the UI components to add, connect, and manipulate these nodes on a canvas. This allows you to focus on implementing domain-specific functionality rather than handling UI concerns.
To learn more, refer to Extending the Editor with Graph Toolkit.
Added drag and drop support to Terrain Layers in the Inspector window or the Scene view.
Previously, to add a Terrain Layer, you had to open the Paint Texture tool in the Inspector window and select Edit Terrain Layers, then Add Terrain Layer and select a layer. Now, you can drag a Layer asset onto the Terrain in the Paint Texture tool area, Scene view, or in the Hierarchy window.
Added drag and drop support to Terrain for materials.
Previously, you had to go to the Settings tab in the Inspector window to assign material to Terrain. Now, you can drag and drop a material asset onto the Terrain in the Scene view. If the material doesn’t have the Terrain Compatible attribute, a warning displays in the Inspector window and the console.
This section outlines recent updates to Unity’s UI Toolkit.
You can now set a default Editor and runtime UI preview theme for your project in the Project Settings window. This project-wide setting can be pushed through version control. Changing the preview theme in UI Builder automatically updates your local preference.
You can now drag and drop UXML and USS files into UI Builder: