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 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 PipelineA series of operations that take the contents of a Scene, and displays them on a screen. Unity lets you choose from pre-built render pipelines, or write your own. More info
See in Glossary (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 spriteA 2D graphic objects. If you are used to working in 3D, Sprites are essentially just standard textures but there are special techniques for combining and managing sprite textures for efficiency and convenience during development. More info
See in Glossary 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 ControllerControls animation through Animation Layers with Animation State Machines and Animation Blend Trees, controlled by Animation Parameters. The same Animator Controller can be referenced by multiple models with Animator components. More info
See in Glossary, 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 ProfilesA set of customizable configuration settings to use when creating a build for your target platform. More info
See in Glossary window now includes the following improvements:
In the SceneA Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info
See in Glossary view, you could already dock overlays in corners or as toolbarsA row of buttons and basic controls at the top of the Unity Editor that allows you to interact with the Editor in various ways (e.g. scaling, translation). More info
See in Glossary. 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 viewAn interactive view into the world you are creating. You use the Scene View to select and position scenery, characters, cameras, lights, and all other types of Game Object. More info
See in Glossary window between the viewportThe user’s visible area of an app on their screen.
See in Glossary 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 GameObjectThe fundamental object in Unity scenes, which can represent characters, props, scenery, cameras, waypoints, and more. A GameObject’s functionality is defined by the Components attached to it. More info
See in Glossary’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 MeshThe main graphics primitive of Unity. Meshes make up a large part of your 3D worlds. Unity supports triangulated or Quadrangulated polygon meshes. Nurbs, Nurms, Subdiv surfaces must be converted to polygons. More info
See in Glossary LODs in the Scene view is now easier. The GizmoA graphic overlay associated with a GameObject in a Scene, and displayed in the Scene View. Built-in scene tools such as the move tool are Gizmos, and you can create custom Gizmos using textures or scripting. Some Gizmos are only drawn when the GameObject is selected, while other Gizmos are drawn by the Editor regardless of which GameObjects are selected. More info
See in Glossary menu lets you toggle Scene view labels that display the active LODThe Level Of Detail (LOD) technique is an optimization that reduces the number of triangles that Unity has to render for a GameObject when its distance from the Camera increases. More info
See in Glossary level of GameObjects. The Mesh LOD InspectorA Unity window that displays information about the currently selected GameObject, asset or project settings, allowing you to inspect and edit the values. More info
See in Glossary window also now includes a selection bar, which you can drag to display the LOD level the cameraA component which creates an image of a particular viewpoint in your scene. The output is either drawn to the screen or captured as a texture. More info
See in Glossary renders at each ratio. For more information, refer to Mesh LOD.
You can no longer target the PVRTC texture formatA file format for handling textures during real-time rendering by 3D graphics hardware, such as a graphics card or mobile device. More info
See in Glossary 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 shadersA program that runs on the GPU. More info
See in Glossary 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 scriptsA piece of code that allows you to create your own Components, trigger game events, modify Component properties over time and respond to user input in any way you like. More info
See in Glossary 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 ManagerSettings where you can define all the different input axes, buttons and controls for your project. More info
See in Glossary 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 and com.unity.modules.physics2d modules 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.
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.
Unity now validates that every individual class in a class hierarchy is decorated with the [Serializable] attribute if one of them is. If the [Serializable] attribute is present on a class but missing from either a class it derives from or a class that derives from it, 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 SettingsA broad collection of settings which allow you to configure how Physics, Audio, Networking, Graphics, Input and many other areas of your project behave. More info
See in Glossary window. This project-wide setting can be pushed through version controlA system for managing file changes. You can use Unity in conjunction with most common version control tools, including Perforce, Git, Mercurial and PlasticSCM. More info
See in Glossary. 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: