Powerful 3D and 2D gaming development software for Windows

Unity

Unity

  -  Freeware
Unity for Windows is a game development ecosystem: a powerful rendering engine fully integrated with a complete set of intuitive tools and rapid workflows to create interactive 3D and 2D content; easy multiplatform publishing; thousands of quality, ready-made assets in the Asset Store and a knowledge-sharing community.

Note: FileHorse is not a corporate affiliate or subsidiary of Unity and this site is not endorsed by Unity. “Unity” is a trademark or registered trademark of Unity Technologies or its affiliates in the U.S. (Unity®️) and other countries.

Unity Personal - Free Plan
  • Start creating with the free version of Unity
  • Latest version of the core Unity development platform
  • Resources for getting started and learning Unity
  • Eligibility: Revenue or funding less than $100K in the last 12 months
For independent developers and studios, the app’s democratizing ecosystem smashes the time and cost barriers to creating uniquely beautiful games. They are using the prpogram to build a livelihood doing what they love: creating games that hook and delight players on any platform. For beginners, students and hobbyists who want to explore and get started with Unity Game Engine for PC.



What is the Unity Hub?

Use the Unity Hub to manage multiple installations of the Unity Editor, create new projects, and access your work.

Create with Unity

Start creating
Move efficiently from prototyping to full production with a truly flexible editor and intuitive workflows supported by tons of tutorials and ready-made assets to guide your learning and development.

Work with the latest
Continuous updates allow you to develop with all the latest and most advanced features for high-end visuals, audio, animation, physics — everything you need to make any kind of game.

Build for all audiences
Target more devices more easily — with Unity, you can build once and deploy to the largest range of mobile, VR, desktop, Web, Console, and TV platforms in the industry with a single click.

Features and Highlights

All-in-one editor
Available on Windows and Mac, it includes a range of artist-friendly tools for designing immersive experiences and game worlds, as well as a strong suite of developer tools for implementing game logic and high-performance gameplay.

2D & 3D
The app supports both 2D and 3D development with features and functionality for your specific needs across genres.

AI pathfinding tools
The app includes a navigation system that allows you to create NPCs that can intelligently move around the game world. The system uses navigation meshes that are created automatically from your Scene geometry, or even dynamic obstacles, to alter the navigation of the characters at runtime.

User interfaces
The built-in Unity UI system allows you to create user interfaces fast and intuitively.

Physics engines
Take advantage of Box2D and NVIDIA PhysX support for highly realistic and high-performance gameplay.

Custom tools
You can extend the Editor with whatever tools you need to match your team’s workflow. Create and add customized extensions or find what you need on the Asset Store, which features thousands of resources, tools, and extensions to speed up your projects.

Storytelling
The Timeline tool gives artists the power to create stunning cinematic content & gameplay sequences.

Cinematic content
With Cinemachine’s suite of smart and dynamic cameras, you can control shots just like a movie director from within the Editor.

Color grading and effects
Create the look you want with professional and fully featured Post Processing FX.

Animation
Use Timeline, Anima2D, Particles, and tight integration with Maya and other 3rd party tools to animate directly within the program.

Level design and worldbuilding
With ProBuilder, rapidly design, prototype and play-test your levels, then blend textures and colors, sculpt meshes and scatter objects with Polybrush (beta).

Round-tripping
Detail and polish your 3D models on-the-fly with the software's seamless integration of digital content-creation (DCC) tools like Maya.

Lighting
Get instant feedback with the Progressive Lightmapper, polish and hone your scene with Post Processing, and optimize your scene with Mixed Lighting Modes for the best result per target platform.

Real-time rendering engine
Produce amazing visual fidelity with Real-Time Global Illumination and Physically Based Rendering.

Native Graphics APIs
The program supports multi-platforms but still stays close to the low-level graphics API of each platform, allowing you to take advantage of the latest GPU and hardware improvements, like Vulkan, iOS Metal, DirectX12, nVidia VRWorks or AMD LiquidVR.

More platform support
25+ platforms across mobile, desktop, console, TV, VR, AR, and the Web. With Unity Hub app, you can reach the widest audience and feel confident that your IP is future-proof, no matter how the industry evolves or where your imagination takes you.

Work faster together
Save, share, and sync your projects and use simple version control and cloud storage, all seamlessly integrated with this app.

Real-time insights with live-ops analytics
The app Analytics gives you fast, easy access to important information that helps you improve your in-game economy and the player experience. Complete set of live-operation features (game & player analytics, heatmaps, performance monitoring) to monitor player activity.

Discover app errors
The tool Performance Reporting addresses issues in real-time. Find and address the high priority issues that your customers are experiencing. Collect and react to application errors, in real-time, across devices and platforms.

The simplest way to increase revenue
Revenue-generation solutions: Ads & IAP. A complete set of live-operation analytics features for monitoring player activity. Continuous improvements: Optimize the performance of your live games in real-time, without redeployment, and increase user Lifetime Value (LTV) with the power of analytics data.

Note: Unity Personal is free, but it can only be used if your revenue is below $100,000 or you have raised less than this amount in funds. Users who do not meet this requirement need to purchase a Pro or Plus subscription, which also offers advanced support features.

Also Available: Download Unity for Mac

  • Unity 6000.0.2 Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    Unity 6000.0.2 Screenshot 1
  • Unity 6000.0.2 Screenshot 2
  • Unity 6000.0.2 Screenshot 3
  • Unity 6000.0.2 Screenshot 4
  • Unity 6000.0.2 Screenshot 5

What's new in this version:

Unity 6000.0.2
Improved:
- Package Manager: Improved samples tab layout
- Package Manager: Improved warning window to show .unitypackage dependencies that are about to be installed
- SRP Core: Improved Render Graph warning message in URP when missing RecordRenderGraph implementation
- SRP Core: Render Graph Viewer: Display subpass & attachment index
- SRP Core: Render Graph Viewer: New icon & tooltip if there are multiple usage details for a resource block

API Changes:
- Scripting: Added: The virtual method Initialize on HierarchyNodeTypeHandlerBase is no longer internal, and can now be used when multiple instances depends on each other
- Scripting: Added: TouchScreenKeyboard.inputFieldAppearance, which can be used to determine on-screenkeyboard input field traits.
- Scripting: Changed: The class HierarchyNodeTypeHandlerBase constructor no longer has any parameters, the default constructor will be used now, and is guaranteed to be called
- Scripting: Changed: The class HierarchyNodeTypeHandlerBase no longer implements the IDisposable interface, so that Dispose cannot be called manually on instances. There is still the Dispose method with a disposing parameter available to override if needed

Changed:
- Android: Prefer to use android.view.WindowMetrics.getBounds instead of DisplayMetrics.getMetrics/getRealMetrics when device API level is 30 or higher
- Build System: include bee_backend.pdb next to bee_backend.exe on windows installs.

Fixed:
- Android: UTK input field cursor will be always visible now when TouchScreenKeyboard opens, independent of hideInput value, when running on GameActivity. The reason is TouchScreenKeyboard.hideInput doesn't do anything on GameActivity, input field is always hidden
- Asset Pipeline: Ensure the mappings are updated when a const guid changes
- Audio: Fixed an issue that would cause the audio random container window to retain a false reference to an audio random container asset after it has been deleted
- Audio: Fixed an issue that would make it appear as shuffle mode in the audio random container is broken
- Audio: Fixed an issue where there was missing tooltips for the audio random container in the list view
- Build Pipeline: Fixed Build and Run for UWP on D3D Generated Projects builds
- Build Pipeline: Fixed plugin filtering for UWP, which will include only compatible plugins
- Editor: * A new editor settings, "Exactly Match Referenced Clip Names", is set to true by default for new projects that are created starting with Unity 6.0
- Editor: Changed multiplayer play mode dialog pop up to an event
- Editor: Checking material layout only for the active subshader
- Editor: Fixed a race condition crash in texture delete and dx12
- Editor: Fixed an issue that would cause the audio random container window to show the wrong asset
- Editor: Fixed an issue where crashes could occur while quitting when Cloud Diagnostics is enabled
- Editor: Fixed an issue where renderer SortingLayerID cannot be set at runtime
- Editor: Fixed exception thrown when switching between previews in inspector
- Editor: Fixed focus selected shortcut regression on hierarchy
- Editor: Fixed issue with Kerning
- Editor: Fixed issue with the editor turning black when a TextEditor constructor was called too early
- Editor: Fixed tabbing to an invisible element when tabbing to Foldout elements
- Editor: Fixed toggling Allow Instancing for multiple game objects and prefabs not applying the changes
- Editor: Setup keywords for Graphics Settings to fix a compatibility with searches
- Editor: Treating RenderSettings.m_IndirectSpecularColor as volatile data
- Graphics: Prevent crash when an asynchronous texture load fails
- HDRP: Fixed a potentially deadlocking StageRasterBin kernel in Hair system
- HDRP: Fixed Alpha missing from HQ line rendering
- HDRP: Fixed an icons used by the HDRP wizard issue
- HDRP: Fixed reflection probe baking exception when fog multiple scattering is enabled in certain conditions
- HDRP: Fixed shader warnings from TAA shader on Metal
- IL2CPP: Cache libUnity and il2cpp image info for Android stacktrace optimizations
- IL2CPP: Fixed a crash when calling Marshal.OffsetOf on a generic type
- iOS: Fixed reported kind for Back Triple Camera: was with depth support when it doesn't support depth
- iOS: Fixed wrong latest version selection in build settings
- Mono: Added more descriptive error message when the process exceeds maximum number of open file descriptors
- Package Manager: The package visibility button toolbar icon doesn't change when toggling from one state to another
- Physics: Fixed a memory corruption inside the PhysicsScene implementation, which in turn caused crashes during the runtime depending on scene setup
- Scene/Game View: Fixed an issue where docked resizable overlays would not update their size when owner window resized
- Scripting: Fixed Application.exitCancellationToken not being raised after exiting playmode
- Scripting: Fixed unexpected recompilations due to issue with AssemblyUpdater
- Scripting: Fixed WaitForEndOfFrame calls multiple times a frame when multiple Game View Windows are visible
- SRP Core: Removed "depth only surface" warning message appearing when using Game View Gizmos in URP RG
- SRP Core: Render Graph Viewer: Fixed long resource name clipping issues in side panel
- SRP Core: Render Graph Viewer: Fixed missing min height when resizing side panel vertical splitter
- SRP Core: Render Graph Viewer: Fixed possible NullReferenceException when opening the project
- SRP Core: Render Graph Viewer: Fixed side panel splitter state after returning from empty pass/resource filter
- SRP Core: Render Graph Viewer: Fixed tooltip size bug and restructure tooltip messages
- SRP Core: Rendering Debugger - Keep the correct selected panel when entering and exiting from playmode
- uGUI: Fixed control interaction using the new input system on multi-display setups with different resolutions
- UI Toolkit: Disabling focusable on a Foldout will now also disable its child Toggle focusable attribute
- UI Toolkit: Fixed an issue where Editor.RequiresConstantRepaint did not work if there were more than 10 components
- UI Toolkit: Fixed an issue where using ListView.bindingSourceSelectionMode would only set the dataSource inside the makeItem callback
- UI Toolkit: Fixed navigation of foldout elements using keyboard or gamepad direction keys
- Undo System: Fixed local position calculation when undoing Add VerticalLayoutGroup
- URP: Fixed obsolete API usages in URP samples
- URP: Hide unused Native Render Pass checkbox in UniversalRenderer when using Render Graph
- VFX Graph: Fixed a rare crash when destroying a VFX instance during rendering
- VFX Graph: Fixed exception when a category color is reset in the node search
- VFX Graph: Fixed exposed properties reset when editing multiple VFX at the same time on inspector
- VFX Graph: Fixed incorrect source spawnCount
- VFX Graph: Fixed NullReferenceException when enabling Decal Layers in HDRP
- Video: Fixed WebcamTexture clamps when wrap mode was set to "Repeat"
- WebGL: Fixed an issue where the WebCam texture was taking over the texture bound to a material
- WebGL: [WebGPU] Fixed error when texture binding is missing
- WebGL: [WebGPU] Fixed error with SRP Batcher constant buffer dynamicOffsets
- WebGL: [WebGPU] Fixed error with write-only compute shader storage textures
- WebGL: [WebGPU] Fixed memory error on graphics device shutdown
- WebGL: [WebGPU] Fixed WGSL shader compilation error with some shaders that use intBitsToFloat


Unity 6000.0.1
Features:
- Android: Added the Addressables for Android (com.unity.addressables.android) package. This package provides Play Asset Delivery support for Addressables.
- DX12: Added support for indirect Dispatch Rays (part of DXR 1.1). The method is similar to RayTracingShader.Dispatch, but the three dispatch dimensions are retrieved from a GraphicsBuffer. Added RayTracingShader.DispatchIndirect and a new CommandBuffer.DispatchRays signature. Added SystemInfo.supportsIndirectDispatchRays capability status.
- Editor: Added a custom menu on IRenderPipelineGraphicsSettings.
- Editor: Added a piercing menu that you can open with Ctrl + Right-click in the Scene view. The piercing menu provides a UI that lists all GameObjects under the pointer. GameObjects in the menu can be highlighted and selected.
- Editor: Added the ForceNoCrunch option to the Build Windows > Asset Import Overrides > Texture Compression dropdown which forces all textures to disable crunch compression and re-import.
- Editor: Added Additional App IDs to Steam ID Provider Editor Settings for Multiple App ID support.
- Editor: Integrated new build profile icons.
- Editor: Introduced IRenderPipelineResources to host SRP resources, which uses the ResourcePath to auto-load resources.
- Editor: The Build Profile Diagnostic checkbox is no longer available because the Build Settings window has been replaced with the Build Profile window.
- Graphics: Added a new backend rendering path for rigid GameObjects in Unity that puts them through the Batch Render Group API when the option is enabled on the Render Pipeline asset ('GPU Resident Drawer'). This functionality creates a persistent GPU state for these objects and they will be rendered by the same fast batching path as used by the entities renderer.
- Graphics: Added small-mesh culling for gpu-driven instances.
- Graphics: Added support for GPU occlusion culling of instances that are compatible with the 'GPU Resident Drawer', which can be enabled in the Render Pipeline asset.
- Graphics: Added UITK support for CustomPostProcessOrder.
- Graphics: Adding a new per batch layer filtering setting for BatchRendererGroup. This setting is useful for the context of culling out specific batches that go through the batch renderer group.
- Graphics: Enabled SpeedTree GameObjects rendering using GPU Resident Drawer.
- Graphics: Updated the default IRenderPipelineGraphicsSettings Inspector to trigger notifications when a value is modified.
- HDRP: Added AMD FidelityFX Super Resolution 2 (FSR2) Unity script bindings and HDRP integration.
- HDRP: Added support for overriding material properties such as smoothness, albedo, and normal maps on all materials to facilitate material and lighting debugging. The material override feature in HDRP is available through the Rendering Debugger's Lighting panel when rendering through the path tracer pipeline.
- HDRP: Added support for Spatial Temporal Post-Processing (STP) upscaling solution.
- HDRP: Added the Sky Occlusion feature to Adaptive Probe Volumes (APV), to allow time of day with static probe volumes.
- HDRP: Disabled storing of baked data as Streaming Asset in Adaptive Probe Volumes (APV) to make it compatible with Asset Bundles and Addressables.
- HDRP: Improved on existing Mipmap Streaming debug views and added more. The current offering in HDRP is consistent with what URP offers.
- iOS: Added Apple Privacy Manifest support.
- Package: Improved the user experience in the 2.0.8 patch of the User Reporting package.
- Package Manager: Improved Project manifest files to repopulate with default dependencies when the files are empty or contain only whitespace.
- Particles: Add BakeTexture and BakeTrailsTexture scripting methods.
- Particles: Added the Custom Vertex Streams feature for particle trails.
- Shadergraph: Added a customizable Heatmap color mode, which by default displays the estimated performance impact of each node in a Shader Graph.
- Shadergraph: Added a new sample content pack that can be installed with the Package Manager. The samples contain descriptions, examples, and break downs for a majority of the nodes in Shader Graph. These samples help users understand the inner workings of the nodes and see examples of how they work and how they can be used.
- Shadergraph: Added a zoom step size option in the user preferences.
- Shadergraph: Added new shortcuts for adding new nodes and toggling sub-window visibility, and moved several existing shortcuts to the Shortcut Manager.
- Shadergraph: Added the Feature Examples Sample to Shader Graph to show users how to achieve specific effects in Shader Graph.
- SpeedTree: Added the SpeedTree9Importer, which supports .st9 files exported by SpeedTree Modeler 9 and includes the following:

- Support for SpeedTree Games Wind and SpeedTree Legacy Wind effects

- The ability to configure wind strength and direction responsiveness through the Importer Settings

- New SpeedTree9 shaders for built-in (.cg), URP, and HDRP renderers (.shadergraph)

- New shaders for the new wind effects, but no major changes to lighting
- SRP Core: Added the option to cache Render Graph compilation for both URP and HDRP.
- TextCore: Native TextGenerator Rewrite.
- UI Toolkit: Added a debugger for the UI Toolkit dynamic atlas.
- UI Toolkit: Added missing UxmlAttribute converters to support UXML authoring: Gradient, AnimationCurve, ToggleButtonGroupState, Unsigned Int and Unsigned Long.
- UI Toolkit: Added support in PropertyField for ToggleButtonGroupState serialized properties.
- Universal RP: Added a Camera History Texture manager and basic interfaces to access per-camera history textures.
History textures are wrapped and stored in types which contain all the textures, additional data, and API methods specific for that history.
History textures are useful for rendering algorithms that accumulate samples over multiple frames or use data of previous frames as input.
- Universal RP: Added a new config package that allows you to override the maximum number of lights visible on screen.
- Universal RP: Added C# script templates to create a post-processing ScriptableRendererFeature that uses a custom VolumeComponent.
- Universal RP: Added per-camera color and depth history and history access for custom render passes.
- Universal RP: Added support for foveated rendering in the Forward+ rendering path.
- Universal RP: Added the 8192x8192 option in Shadow textures.
- URP: Added Adaptive Probe Volumes (APV) Lighting Scenario Blending to URP
- URP: Added APV Sky Occlusion support for URP.
- URP: Added Render Graph Viewer. Access it through the Window > Rendering menu. The tool helps to visualize and debug resource usage of Render Passes in the Render Graph framework.
- URP: Added six Mipmap Streaming debug views to the Rendering Debugger. These views can be found in the Rendering tab, under Mipmap Streaming. The available debug views are: Mip Streaming Performance, Mip Streaming Status, Mip Streaming Activity, Mip Streaming Priority, Mip Count, and Mip Ratio.
- URP: Added support for Spatial Temporal Post-Processing (STP) upscaling solution.
- VFX Graph: Added Camera Buffer Access support in VFX with URP.
- VFX Graph: Added collision events that allow specific processes upon contact.
- VFX Graph: Added new profiling/debugging panels in the VFX window.
- VFX Graph: Added particle count readback for strips, which also allows strips to go to sleep state.
- VFX Graph: Added support for per-particle sorting in strips.
- VFX Graph: Allowed instanced rendering of VFX that have exposed textures or graphic buffers.
- VFX Graph: Built-in and custom attributes can now be handled from the blackboard panel.
- VFX Graph: Enabled Frustum Culling for strips.
- VFX Graph: Improved the Shader Graph Cross Pipeline workflow.
- VFX Graph: Reworked Flipbook player block.
- VFX Graph: Strips now support the "Indirect draw" option. "Indirect draw" renders only the particles that are active, instead of full capacity.
- VFX Graph: Support of ShaderKeyword declared in Shader Graph.
- VFX Graph: The following improvements have been made to shortcuts in VFX Graph:

- Registered the shortcuts in the global Unity Shortcut window.

- Synced shortcuts with ShaderGraph where possible.

- Added new shortcuts.
- Web: Implemented the following LocationService methods and properties in Web platform:

- Start()

- Stop()

- isEnabledByUser

- lastData

- status
- Web: [Web Platform] Added the ability to copy and paste to and from the Unity player.
- WebGL: Added support for WebAssembly 2023, which is a Unity-coined term for a collection of newer WebAssembly language features such as, sign-ext opcodes, non-trapping fp-to-int, bulk-memory, bigint, wasm table, native Wasm exceptions, and Wasm SIMD.
- WebGL: Implemented the following LocationService methods and properties:

- GetLastHeading()

- SetHeadingUpdatesEnabled()

- IsHeadingUpdatesEnabled()

- GetHeadingStatus()

- IsHeadingAvailable()
- XR: Added support for Foveated Rendering on Vision Pro.
- Improvements
- 2D: Improved performance of shadow generation.
- Accessibility: Improved multiple API documentation for the Screen Reader API.
- AI: Increased the speed of the instantiation of NavMeshes into the scene.
- Android: Added a new Player setting to display warnings when the symbols package size exceeds the specified threshold.
- Android: Added a new property in .androidlib plug-in inspector to specify dependencies for unityLibrary. You can now configure .androidlib to depend on unityLibrary, and thus expand an activity by overriding UnityPlayerActivity.
- Android: Fixed
- Android: Fixed .androidlib default build.gradle, it will correctly apply android library plugin + targetSDKVersion.
- Android: When producing the symbols.zip package, Unity will prompt Gradle to produce the zip, which means the symbols.zip package might contain more symbol files, allowing for better stack trace resolution. This also allows you to regenerate the symbols package from within the Gradle project.
- Android: You can now embed Debug symbols into an app bundle (e.g., in the Build Settings window, choose Debug Symbol > level and format to IncludeInBundle) when uploading .aab files to the Google Play Store. The symbols are uploaded together with aab, which means you don't need to upload the symbols separately.
- Apple TV: Included platform name in Bundle Identifier error messages
- Asset Pipeline: Improved error handling when updating ArtifactDB or SourceAssetsDB
- Audio: Added an "Edit Audio Random Container" button to the Audio Random Container Inspector. Also, disabled presets for the Audio Random Container
- Audio: Enabled ALT+P as a shortcut to preview the Audio Random Container (ARC).
- Audio: You can now create an Audio Random Container (ARC) from a selection of audio clips using the following method:

- From your Project browser, select a set of audio clips.

- Right-click and click Create > Audio > Audio Random Container.
This creates a fresh audio random container that contains the clips from your selection.
- Build System: Added deterministic shader ordering in output content.
- Build System: Content is now deterministically sorted when being pulled from the resource manager.
- Build System: Made bee_backend's directory deletion explicitly handle read-only files on Windows.
- Burst: Added a new Math.Clamp API, which is available when the API Compatibility Level is set to .NET Standard 2.1.
- Burst: Added Burst support for Apple visionOS.
- Burst: Added support for default interface methods.
- Burst: Added support for hashing against different target frameworks.
- Burst: Added support for string interpolation in exception messages.
- Burst: Added support for System.Math functions Acosh, Asinh, Atanh, Cbrt, CopySign, Log2, SinCos, FusedMultiplyAdd, and ILogB.
- Compute: Added logging when a ComputeShader variant is created with no keywords.
- Core: Clean up and clarify areas of the source code.
- Core: Improved baking of large scenes that use Probe Volumes.
- Documentation: Add instructions for blending Adaptive Probe Volumes at runtime.
- Documentation: Added new and updated existing Accelerator cache server command line argument documentation.
- Documentation: Added two new workflows to the Timeline Workflows documentation

- The Use markers and signals for footsteps workflow demonstrates how to use Timeline markers, Signal assets, and Signal Receiver components to play audio sources for footsteps.

- The Create a Sub-Timeline instance workflow demonstrates how to create a single cut-scene by nesting a Timeline instance within another Timeline instance.
- Documentation: Changed the line summary of Vector2/3/4.normalized to make it clearer that the vector is not modified and that it is a new normalized vector in the same direction that is returned
- Documentation: Improve the scripting documentation for RaycastHit2D.
- Documentation: Improved code sample for NavMeshAgent.CalculatePath() to better clarify how to interpret and use its results
- Documentation: Updated documentation of Mathf.SmoothDamp
- Documentation: [AI] Added some detail to NavMeshPathStatus.PathInvalid
- DX12: Implemented a dedicated GPU memory allocator for small acceleration structures (BLASes) to save GPU memory when using ray tracing.
- DX12: Implemented acceleration structure (BLAS) compaction for static meshes to reduce GPU memory consumption in Ray Tracing effects. Compaction reduces memory requirements by more than 50% for BLASes.
- DX12: Optimized writing shader records into shader tables before ray tracing dispatches.
- Editor: Added a column that displays the shortcut type in the Shortcut Manager window.
- Editor: Added a general Graph category to the search by type option in ProjectBrowser.
- Editor: Added a new internal Editor API to control Rendering Layer names in Tag & Layers.
- Editor: Added a toggle in the preferences to show the project path instead of the project name in main window title.
- Editor: Added Deselect and Invert Selection to the context menu.
- Editor: Added discrete menu items for pasting cut or copied GameObjects as children while preserving local or world transform
- Editor: Allow for action and clutch shortcuts to use the same mouse button [with or without modifiers].
- Editor: Categorised and alphabetised the order of items in the Create menu
- Editor: Changed the overlay menu into an overlay itself. This allows us to use the new Overlay Popup feature and to remove the need to maintain two code paths for very similar behaviors.
- Editor: Changed unused System namespaces so they are no longer added to new scripts
- Editor: Data used for preview is released when the baked lightmap preview system is not used for 30 seconds.
- Editor: Implement guard for crash in TimeSliceAwakeFromLoadQueue::IntegrateTimeSliced
- Editor: Improve performance when fetching artifacts that are missing (e.g link to an artifact deleted from the project)
- Editor: Improved exception handling when package load fails
- Editor: Improved moving files in the Project window. Moving files in the Project window now takes less memory and is faster
- Editor: Improved the Build window message that appears when a Dedicated Server target is not installed
- Editor: Improved the Clamp Gizmo icon render size to prevent gizmos from being drawn obstructively large or unreadably small in certain scenes.
- Editor: Improved visibility on Volume component when Profile Instance used.
- Editor: Improvements to the Graphics Settings UI.
- Editor: Improvements to CustomPropertyDrawer to allow filtering per Render Pipeline with the SupportedOnRenderPipeline attribute.
- Editor: Modified the Create menu so it now contains a script template for an empty C# Script and a Scriptable Object Script. In addition, the C# Script menu item has been renamed to MonoBehaviour Script
- Editor: Renamed Post-processing and Lighting Quality settings to Tiers.
- Editor: Reorganized the Edit menu.
- Editor: The menu Animation item has been renamed to Animation Clip
- Editor: Updated OpenSSL to 1.1.1w
- GI: Added missing color legends for the Lighting Visualizations Colors panel, to explain the colors used in the Texel Validity Scene View Mode.
- GI: Added the Bake Reflection Probes menu item.
- GI: Added the Clear Baked Data menu item.
- GI: Changed packing of instances into lightmap atlases to be spatially coherent, and prefer packing instances that are located close to be together.
- GI: Changed several scene view modes to have lit shading, to make them easier to read.
- GI: Exposed a "Lightmap Scale" slider for baked preview mode, which lets you quickly change the effective lightmap resolution.
- GI: Finalize APV baking using new probe baking API.
- GI: Implemented tests which target meta passes without light baking.
- GI: Improved and optimized both undo and redo in VFX Graph.
- GI: Improved Typeset lightmap and light probe numbers in the Lighting Window.
- GI: Optimized light baking input extraction by parallelizing surface area calculations.
- GI: Optimized the initialization time for GPU lightmapper bakes.
- Graphics: Added the option Use Legacy Lightmaps to disable lightmap texture arrays when GPU Resident Drawer is enabled.
- Graphics: Added three new UNITY_DOTS_INSTANCED_PROP variants to give users more control over DOTS instanced property loading performances.
- Graphics: Added ShadowDrawingSettings.splitIndex to control which split index is drawn for a shadow renderer list.
- Graphics: Improved CPU performance when binding geometry buffers (i.e. unity_MeshVertexBuffers_RT) to ray tracing hit shaders
- Graphics: Improved culling performance when using Batch Render Group.
- Graphics: Improved the performance and memory requirements of Texture API calls such as LoadRawTextureData that write to a Texture2D that was created with the TextureCreationFlags.DontUploadUponCreate flag
- Graphics: Kick GameObjects shadow casters culling jobs earlier to improve performance.
- Graphics: Optimized DOTS instanced properties loading code for URP and HDRP stock shaders.
- Graphics: Updated platform macros for VRR code.
- HDRP: Add support for fixing IRenderPipelineGraphicsSettings on the HDRP Wizard.
- HDRP: Added a new LOD mode for the High Quality Line Renderer that is based on screen coverage.
- HDRP: Added a warning to the HDRP Wizard if a users project contains materials that can't be upgraded
- HDRP: Added an Importance property to Reflection Probes. Use this property to indicate the relative priority of the Reflection Probe for sorting.
- HDRP: Added atmospheric scattering from PBR Sky.
- HDRP: Added line light support to the Stacklit, Water, Hair, Eye, and Fabric shaders.
- HDRP: Added new visual effects examples to the HDRP Water Sample example scenes.
- HDRP: Added support for tube-shaped and disc-shaped area lights in the path tracer.
- HDRP: Added the ability to express the width of lines in the High Quality Line Renderer in centimeter units on a per-vertex basis.
- HDRP: Avoid clamping to integers for HDR manipulation
- HDRP: Following HDRP fixes were made:

- Support for decals in the Raytracing mode of SSR and SSGI.

- Changed the value type of Texture Lod Bias from integer to float

- Support debug rendering of decals' light cluster from Window > Rendering Debugger > Fullscreen Debug Mode > LightCluster, Light Category > Decal.

- Changed the color of the light cluster in the debug view, so that it uses the same color palette as that of tiled lighting.
- HDRP: Improved HDRP build time
- HDRP: Improved implementation of line lights for all materials and performance.
- HDRP: Improved path tracer denoising when using AOVs in combination with volumetric fog. Added an option to denoise the volumetric scattering effect separately.
- HDRP: Improved Render Graph Viewer.
- HDRP: Improved scene culling performance when APV is enabled in the project.
- HDRP: Improved skyContext caching when the sky renderer changes
- HDRP: Improved the performance of the FrameSettings.Sanitize method.
- HDRP: Improved user feedback when a framesetting is disabled.
- HDRP: Improved water surface underwater backface rendering.
- HDRP: Improved water system foam generatorattenuation.
- HDRP: Improved water system performances.
- HDRP: Improvements in the volumetric lighting performance.
- HDRP: Made changes to improve the conversion from string to type for each Custom PP.
- HDRP: Optimized the performance of reflection probe baking by baking all probes in a single batch.
- HDRP: Optimized water surface scripting interactions.
- HDRP: Reduced GC Alloc when using raytracing and HDRP
- HDRP: Reduced the amount of memory that LTC area light tables consume.
- HDRP: Reduced time taken by default scriptable shader stripping.
- HDRP: Updated description of Decal Projector Draw Distance setting to mention HDRP asset setting
- HDRP: Updated com.unity.collections package from 1.4.0 to 2.2.0 in HDRP and light-transport packages.
- Kernel: Added the "-timestamps" command line argument to the player, which makes it prepend timestamps at the beginning of each log line. This setting was previously only available to the Editor.
- Mono: Implemented stack probes for Windows Arm64.
- Package: Alembic: Prevented a NullReferenceException when upgrading a project with URP and Alembic to Unity 2023.3.
- Package Manager: A warning is logged in upm.log when a deprecated UPM environment variable is detected.
- Package Manager: Added the ability to configure the UPM global cache size via the UPM_MAX_CACHE_SIZE environment variable or the maxCacheSize property in the user configuration file. The default is 10GB.
- Package Manager: The global cache that contains the uncompressed contents of registry package tarballs is now obsolete and the UPM_CACHE_PATH environment variable is no longer supported.
- Particles: Improved two error messages to include the name of the Particle System.
- Physics: Improved Physics callback dispatching performance by jobifying the processing of trigger and joint break events and only dispatching events that have their callback implemented.
- Profiler: Released Memory Profiler version 1.1.0. Refer to
- Scene/Game View: Changed the overlays order for a consistent one in the Overlay Menu.
- Scene/Game View: Updated the Cameras overlay icon to be more descriptive.
- Scripting: Fixed Hierarchy.Remove performance issues that could not scale when performed in loop
- Scripting: Reduced noise in logs by setting logging level to 'Debug' in AssemblyUpdater when collecting ApiUpdater configurations
- Shadergraph: Added theDisable Color Tinting property to Canvas and Sprite SubTargets. Use this property to override the color completely
- Shadergraph: Added a shader variant limit to the Project Settings, and clarified the difference between the variant limits in the Preferences tooltip.
- Shadergraph: Added UV3 and UV4 support for the Canvas SubTarget
- Shadergraph: Addressed delays related to graph concretization where certain operations were taking longer than expected.
- Shadergraph: Exposed a scope option for Texture3D, CubeMap, and Texture2D Array Blackboard properties.
- Shadergraph: Improved clarity and behavior of Blackboard properties when options change. Renamed Exposed to Show in Inspector.
- Shadergraph: Improved the performance of undo/redo operations in large graphs
- Shadergraph: Removed the Global/Local scope for Keyword properties and replaced them with an Is Overridable toggle. Updated the corresponding option enablement to clarify behavior.
- Shadergraph: Updated the toolbar UI to make it more similar to VFX Graph.
- Shaders: When compiling shaders with DXC and targeting Metal, HLSL min16float instructions will be converted to 16-bit floating point (MSL half) instructions.
- SRP Core: Added GPU Resident Drawer debug panel to display culling stats when Instanced Drawing is enabled.
- SRP Core: Added icons and fixed bugs in Render Graph Viewer.
- SRP Core: Dumping in the temp folder the stripping of IRenderPipelineGraphicsSettings
- SRP Core: Improved and unified render graph profiling markers.
- SRP Core: Improved execution performance with Render Graph.
- SRP Core: Improved Render Graph Viewer UI to allow jumping to pass definitions in C# IDE.
- SRP Core: Improved the CPU performance of the Native Render Pass Render Graph compiler by 15-40% (combined with NativeList PR and other optimization), depending on the complexity of the rendering and the runtime device.
- SRP Core: Improved the Native Render Pass CPU performance by implementing a Render Pass pooling system
- SRP Core: Improved the resource pooling system in Render Graph.
- SRP Core: Improved BeginRenderPass CPU performance in the Native Render Pass Render Graph
- SRP Core: Merged rendergraph native render passes that have different depths.
- SRP Core: Prevented the unnecessary store op of MSAA buffers in URP when using Native Render Pass Render Graph.
- SRP Core: Reduced AddRaster/Compute/UnsafeRenderPass Render Graph API CPU cost by not clearing internal arrays. Now it relies on the handle IsValid() API instead.
- SRP Core: Replaced the overlays inside the RenderGraph Viewer with a fixed side panel.
- SRP Core: Replaced DynamicArray with NativeList in NativeRenderPassCompiler to improve performance.
- SRP Core: Reworked the additional properties
- SRP Core: Small optimization, frame allocation checks of the Render Graph resource pool are now enabled through Validation checks.
- SRP Core: Validation checks of Render Graph can now be enabled or disabled from the Editor. They are enabled by default, and disabling them slightly improves Render Graph performance.
- SRP Core: RenderGraphObjectPool is now three times faster with RasterRenderRenderGraphPass objects by using UnityEngine.Pool.
- Text: Improved dynamic FontAsset initialization time and reduced the required number of managed memory allocations.
- uGUI: Provided early out to scenarios where a null mesh was being set on a CanvasRenderer.
- UI Elements: Refactored the TreeView and MultiColumnTreeView control to use the Hierarchy as its data structure.
- UI Toolkit: Added support for defining null UxmlObjects by using the <null/> tag.
- UI Toolkit: Added support for generic UxmlAttributeConverters and Types.
- UI Toolkit: Added support for setting the searchfield placeholder text via UXML.
- UI Toolkit: Added support for UxmlObjects to use custom property drawers for their serialized data.
- UI Toolkit: Added the ability to preview changes to the inline value of a UXML attribute or a USS property In the UI Builder, even if they are bound.
- UI Toolkit: Added undo/redo functionality for when you create a binding on attributes or style properties
- UI Toolkit: Added validation of UXML attribute and element names to ensure they are valid XML names
- UI Toolkit: Added warning for UxmlAttributes in a non UxmlElement class
- UI Toolkit: Changing a UxmlElements namespace or class name is now supported with the MovedFromAttribute.
- UI Toolkit: Exposed the align-content API in the Editor, via the Align Content property in the Align section of the Builder Inspector
- UI Toolkit: Improved the performance of the UXML attributes view in the builder during undo/redo operations
- UI Toolkit: Improved the UI Builder performance when using UXML serialization and data bindings.
- UI Toolkit: Improved the UI Toolkit performance by reducing the number of managed memory allocations (GC.Alloc), specifically when using a virtualized ListView containing Label items
- UI Toolkit: Improved UI Builder Attribute type picker field to use a popup selector instead of a completer
- UI Toolkit: Modified the builder attribute field tooltips so they now include the value.
- UI Toolkit: The Editor now tracks which fields are overridden in UXML in the UxmlSerializedData. During the deserialize process, the Editor only applies the overridden fields instead of all of them.
- UI Toolkit: The UI Builder is improved to no longer react to asset changes unnecessarily if it's not opened
- UI Toolkit: Updated the bound fields in the UI Builder Inspector so they can be navigated through keyboard events.
- Universal RP: Added checks to avoid building shadow atlases, adjusting shadow resolution, calculating rendering layers, and running other related operations when their features are disabled.
- Universal RP: Bloom shader variants are now stripped per feature (LQ, LQ Dirt, HQ, HQ Dirt).
- Universal RP: Disabled implicit use of all globals in URP passes
- Universal RP: Improved performance for Deferred Rendering when using many lights.
- Universal RP: Improved performance for AdditionalLightShadowCasterPass and BuildAdditionalLightsShadowAtlasLayout.
- Universal RP: Improved performance when creating shadow data.
- Universal RP: Improved runtime performance by adding checks for _ALPHATEST_ON when rendering depth, shadows, and depth normals.
- Universal RP: Improved stripping logic for Accurate G-buffer normals when using Deferred rendering on Vulkan.
- Universal RP: New Renderer Feature updated with Render Graph code.
- Universal RP: Optimized bloom post processing effect CPU performance. Converted many RasterPass into a single UnsafePass.
- Universal RP: SSAO CPU optimization. Many RasterPass into single UnsafePass.
- Universal RP: Updated NewRendererFeature Template.
- Universal Windows Platform: Improved the performance of repeating checks on whether the accelerometer and gyrometer are supported.
- URP: Enabled APV Disk Streaming in URP.
- URP: Enabled the APV Lighting Scenario Baking in URP.
- URP: Enabled renderViewportScale for XR intermediate textures.
- VFX Graph: Improved AddComponent performance for VFX by precaching script pointers in common case operation.
- VFX Graph: Improved and optimized both undo and redo.
- VFX Graph: Improved compilation times with VFX Graph using Subgraphs.
- VFX Graph: Improved error feedback and added more error feedback.
- VFX Graph: Improved Position, Collision, and Kill blocks.
- VFX Graph: Improved the collision system so it is more stable, robust, and energy conservative.
- VFX Graph: Improved the performance of VFX.ProcessCommandList by skipping the use of a RenderingCommandBuffer.
- VFX Graph: Improvements to texture types to allow using in branch operators
- VisionOS: Added VisionOS as a target for Windows and Linux
- Web: Improved performance for instance rendering in WebGPU.
- WebGL: Improved Web builds to be able to allocate up to 4GB of WebAssembly Memory, up from the previous limit of 2GB. Note that at the time of development, this feature did not work in Firefox (
- WebGL: Rebalanced the WebGL audio memory pool size values
- WebGL: Removed redundant filesystem persistence operations, to improve IndexedDB filesystem performance.

API Changes:
- Accessibility: Added: Added mobile screen reader support for sliders, allowing them to be made compatible with TalkBack (Android) and VoiceOver (iOS).
- Accessibility: Added: Support added for the Dismiss Gesture (Two-finger scrub) on iOS and the Dismiss Action (Action Menu item) on Android when using a screen reader.
- Accessibility: Added: support for reading the bold text system setting on Android and iOS.
- Accessibility: Added: support for reading the closed captioning system setting on Android and iOS.
- Accessibility: Added: support for reading the font scale system setting on Android and iOS.
- Accessibility: Changed: Made label parameter on AccessibilityHierarchy.AddNode and AccessibilityHierarchy.InsertNode null by default to make some use cases easier to achieve
- Accessibility: Changed: Toggle role added to the AccessibilityRole enum.
- AI: Added: All the new NavMeshEditorHelpers.CollectSourcesInStage() methods have been copied from the NavMeshBuilder.CollectSourcesInStage() methods, which, in turn, have been deprecated.
- AI: Added: NavMesh.GetAreaNames() has been added to replace the deprecated method GameObjectUtility.GetNavMeshAreaNames().
- AI: Deprecated: All methods from GameObjectUtility related to NavMesh area names have been deprecated. Use the similar methods from the NavMesh class instead.
- AI: Deprecated: All methods from GameObjectUtility that assign and retrieve NavMesh area types to/from GameObjects have been deprecated. Instead, use NavMeshBuildMarkup and UnityEngine.AI.NavMeshBuilder to designate different area types in a generated NavMesh.
- AI: Deprecated: The editor-only NavMeshBuilder class has been deprecated. Use UnityEngine.AI.NavMeshBuilder instead.
- AI: Deprecated: The NavMeshBuilder.CollectSourcesInStage() methods have been deprecated. Use NavMeshEditorHelpers.CollectSourcesInStage() instead.
- Android: Added: ConfigurationManager has new APIs:

- ApplyPluginList.AddPluginFromPath

- ApplyPluginList.AddPluginFromRaw

- Ndk.DebugSymbolLevel
- Android: Changed: Unity.Android.Gradle.GradlePropertiesFile.EnableUncompressedNativeLibs was replaced with Unity.Android.Gradle.JniLibs.UseLegacyPackaging.
- Core: Added: API to force active set for APV
- Core: Added: ContextContainer to SRP Core. A storage container which works like a dictionary with the key being a generic type id and the value being the value of the given type.
- Core: Added: Component.GetComponentIndex() returns a components index on it's GameObject.
- Core: Added: ContentLoadInterface.GetIntegrationTimeMS() and ContentLoadInterface.SetIntegrationTimeMS() for timeslicing integration from Content Files.
- Core: Added: Object.Instantiate(Object,Scene) allows for directly instantiating an object to a specific scene.
- Editor: Added: a flag for recursive dependency calculation. For use with the Compatibility Pipeline API.
- Editor: Added: Added API for collecting in-scene assets and promoting them to project assets.
- Editor: Added: Added RenderingLayerMask as a separate Runtime structure.
- Editor: Added: Added the ScriptableRenderPass.requiresIntermediateTexture flag to allow individual ScriptableRenderPasses to request offscreen rendering
- Editor: Added: Exposed new MenuItem attribute constructor with a path to iconResource.
- Editor: Added: Layout field in the DropdownMenuDescriptor to the behavior of the menu when there is a large number of items.
- Editor: Added: Make OverlayCanvas.SetOverlaysEnabled and OverlayCanvas.overlaysEnabled public API.
- Editor: Added: PrefabUtility callbacks for prefab instance apply.
- Editor: Added: public methods RegisterToolContext and DeregisterToolContext to the ShortcutManager class to allow users to register and unregister custom shortcut contexts.
- Editor: Added: the IShortcutToolContext interface to allow users to create their own custom shortcut context.
- Editor: Added: EditorGraphicsSettings.TryGetRenderPipelineSettingsForPipeline to access settings of other pipelines than the currently active pipeline.
- Editor: Added: GameObject.GetComponentAtIndex() returns the component at the specific index on a GameObject.
- Editor: Added: HandleUtility.GetOverlappingObjects for getting an ordered list of all pickable objects under the give mouse location.
- Editor: Added: HandleUtility.RegisterRenderPickingCallback and a few peripheral structures that enables custom rendering-based picking solutions to be developed.
- Editor: Added: SceneManager.MoveObjectToSceneBatch allows for moving objects in batches to a scene.
- Editor: Changed: EditorUserBuildSettings.androidCreateSymbols was replaced with UnityEditor.Android.UserBuildSettings.DebugSymbols.level and UnityEditor.Android.UserBuildSettings.DebugSymbols.format.
- Editor: Changed: Renamed ArticulationBody.velocity to ArticulationBody.linearVelocity in order for the API to be symmetric with ArticulationBody.angularVelocity
- Editor: Changed: Renamed Rigidbody.velocity to Rigidbody.linearVelocity in order for the API to be symmetric with Rigidbody.angularVelocity
- Editor: Deprecated: The property ChildCount on HierarchyNodeFlattened was renamed to ChildrenCount.
The following methods are now deprecated: GetExpanded replaced by DoesNotHaveFlags(Collapsed), GetSelected replaced by HasFlags(Selected), SetExpanded replaced by ClearFlags(Collapsed), and SetSelected replaced by SetFlags(Selected).
- Editor: Deprecated: Using XRSettings.enabled to enable/disable XR for an application is now deprecated in favor of calling Start()/Stop() on an XRDisplaySubystem instance.
Using XRSettings.LoadDeviceByName to load XR devices is now deprecated in favor of querying subsystem descriptors to create and start the subsystems of your choice with the SubystemManager.
- Editor: Deprecated: ObjectIdResult.DecodeIdFromColor. Users are now encouraged to use HandleUtility.DecodeSelectionId for decoding and HandleUtility.EncodeSelectionId for encoding selection IDs.
- Editor: Obsoleted: Made PropertyCollectionAttribute obsolete. Use PropertAttribute constructor argument applyToCollection to make a collection attribute.
- Editor: Obsoleted: Using Unsupported.CaptureScreenshotImmediate will now result in a compilation error. Please use ScreenCapture.CaptureScreenshot instead.
- Editor: Removed: IOSLaunchScreenType.CustomXib launch screen option was removed.
- Editor: Removed: SceneManager.MoveObjectToSceneBatch becase it was never was properly exposed.
- EmbeddedLinux: Deprecated: UnityEditor.EmbeddedLinuxArchitecture enum and UnityEditor.EditorUserBuildSettings.selectedEmbeddedLinuxArchitecture are deprecated. UnityEditor.EmbeddedArchitecture and UnityEditor.EmbeddedLinux.EmbeddedLinuxSettings.Get().architecture should be used instead.
- GI: Added: Add functions for better manipulating LightTransport.BufferSlice, including LightTransport.BufferID.Slice, LightTransport.BufferSlice.SafeReinterpret and LightTransport.BufferSlice.UnsafeReinterpret.
- GI: Added: New light probe baking API. A data driven, stateless, public API for GI probe baking without dependencies on game objects. The API provides CPU and GPU integrators for direct and indirect radiance, validity and a post processing API for conversion to irradiance and other operations needed to composite results before rendering.
- GI: Changed: Added IDisposable to LightTransport.IProbeIntegrator, LightTransport.IWorld and LightTransport.PostProcessing.IProbePostProcessor interfaces.
- GI: Changed: Change LightTransport.BufferSlice to carry a type annotation, indicating the type of elements in the buffer slice.
- GI: Changed: Changed LightTransport.IDeviceContext.WriteBuffer and LightTransport.IDeviceContext.ReadBuffer to take a LightTransport.BufferSlice rather than a LightTransport.BufferID. This lets you provide an offset for your reads and writes.
- GI: Changed: Only one of ignoreDirectEnvironment and ignoreIndirectEnvironment is relevant in each of the IntegrateRadiance methods in IProbeIntegrator.
Removed the unnecessary ignoreIndirectEnvironment parameter from LightTransport.IProbeIntegrator.IntegrateDirectRadiance.
Removed the unnecessary ignoreDirectEnvironment parameter from LightTransport.IProbeIntegrator.IntegrateIndirectRadiance
- GI: Changed: Renamed LightTransport.IDeviceContext.WaitForAsyncOperation and LightTransport.IDeviceContext.IsAsyncOperationComplete to LightTransport.IDeviceContext.Wait and LightTransport.IDeviceContext.IsComplete.
- Graph Tool Foundation: Removed: GTF and CSO modules removed from the editor. Use package com.unity.graphtoolsauthoringframework instead.
- Graphics: Added: Added a "Texture.SetStreamingTextureMaterialDebugProperties" overload that takes in a "materialTextureSlot" integer. This overload can be used to debug any (non-hidden) texture property on materials used by renderers.
- Graphics: Added: API to reconstruct SRP using a certain IRenderPipelineGraphicsSettings in the Editor.
- Graphics: Added: New method overloads accepting GraphicsTexture parameters were added to the Graphics.CopyTexture API
- Graphics: Added: SystemInfo.supportsDepthFetchInRenderPass to check if RenderPass' depth attachment can be used as input, added UNITY_PLATFORM_SUPPORTS_DEPTH_FETCH shader macro to detect it in shader code
- Graphics: Added: Texture2D.CopyPixels, Texture2DArray.CopyPixels, Texture3D.CopyPixels, Cubemap.CopyPixels, CubemapArray.CopyPixels allow copying readable pixel data only on the CPU.
- Graphics: Added: UseBufferRandomAccess and UseTextureRandomAccess to IRasterRenderGraphBuilder
- Graphics: Added: watermark API to indicate if watermark is visible.
- Graphics: Changed: BatchDrawCommand.visibleCount no longer has to be set to 1 when BatchDrawCommandFlags.HasSortingPosition is set
- Graphics: Changed: HLSL min16float variables are now translated to MSL float in all CPU visible buffers (e.g. Constant Buffers, Structured Buffers, Vertex Shader Input). When accessing these values inside shaders, they are casted to MSL half (16-bit) for faster arithmetic operations. Any project that uses min16float or half in shaders and accesses this data as 16-float (from CPU) on iOS is incompatible with this change. For these cases, a new #pragma metal_fxc_allow_float16_in_cpu_visible_buffers was added so that HLSL min16float variables are converted to MSL half in all CPU visible buffers (just like before).
- Graphics: Changed: Updated contextual menu drawer API with PropertyDrawer information.
- HDRP: Added: Added an API to set and get the material type via script on HDRP Materials.
- HDRP: Added: Fix missing API to get deformation buffer
- HDRP: Added: New forceVisible API on light to get information from a light from SRP even if it is not in frustrum.
- Package: Added: Added GetCustomId method to PlayerInfo
- Package: Added: Added SignInWithSteamAsync method with appId parameter for Multiple App Id Support
- Package: Changed: Added LinkWithSteamAsync method with appId parameter for Multiple App Id Support
- Particles: Added: New custom vertex streams: particle index, mesh axis of rotation, and color packed as 2 floats.
- Physics: Changed: Collider.material now returns PhysicsMaterial instead of PhysicMaterial
- Physics: Changed: Collider.sharedMaterial now returns PhysicsMaterial instead of PhysicMaterial
- Physics: Changed: Renamed PhysicMaterial into PhysicsMaterial
- Physics: Changed: Renamed PhysicMaterialCombine to PhysicsMaterialCombine
- Physics: Changed: Renamed Rigidbody.angularDrag to Rigidbody.angularDamping to create symmetry between ArticulationBody and Rigidbody APIs
- Physics: Changed: Renamed Rigidbody.drag to Rigidbody.linearDamping to create symmetry between ArticulationBody and Rigidbody APIs
- Physics: Obsoleted: PhysicMaterial is now obsolete. All references to PhysicMaterial are upgradeable to PhysicsMaterial when updating your project.
- Physics: Obsoleted: PhysicMaterialCombine is now obsolete. All references to PhysicMaterialCombine are upgradeable to PhysicsMaterialCombine when updating your project.
- Physics: Removed: Removed long deprecated type field SoftJointLimit.bouncyness
- Physics: Removed: Removed long deprecated type field SoftJointLimit.damper
- Physics: Removed: Removed long deprecated type field SoftJointLimit.spring
- Player: Added: AsyncInstantiateOperation.GetIntegrationTimeMS() and AsyncInstantiateOperation.SetIntegrationTimeMS() for time slicing integration times of InstantiateAsync().
- Player: Added: Object.InstantiateAsync<T>().
- QNX: Deprecated: UnityEditor.QNXArchitecture enum, UnityEditor.EditorUserBuildSettings.selectedQnxArchitecture, UnityEditor.EditorUserBuildSettings.selectedQnxOsVersion are deprecated. UnityEditor.EmbeddedArchitecture and UnityEditor.QNX.QNXSettings.Get().architecture should be used instead.
- Scripting: Added: Constructor to TextAsset which takes a ReadOnlySpan of bytes.
- Scripting: Added: Every hierarchy node type handler now has access to an member hierarchy command list in which they can write to whenever they want. This is to simplify the workflow of integrating changes into the hierarchy, which in turn makes the ChangesPending and IntegrateChanges methods optional
- Scripting: Added: New methods on Hierarchy class: GetChild to retrieve a child at specified index, GetChildrenCountRecursive to get number of children including children of children, DoesChildrenNeedsSorting to get whether or not a node requires its children to be sorted, and EnumerateChildren to get a children enumerable to iterate children without copying them.
New methods on HierarchyFlattened class: EnumerateChildren to get a children enumerable for the specified node, GetChildrenCountRecursive to get number of children including children of children.
New methods on HierarchyViewModel class: several methods to manipulate and query bit flags on nodes, such as SetFlags, ToggleFlags, ClearFlags, HasFlags, DoesNotHaveFlags, GetNodesWithFlags, GetIndicesWithFlags, EnumerateNodesWithFlags and EnumerateNodesWithoutFlags.
New classes and structs to support new functionality: several new enumerables, such as HierarchyFlattenedNodeChildren, HierarchyNodeChildren and HierarchyViewNodesEnumerable.
A new enum flags HierarchyNodeFlags used by the HierarchyViewModel.
A new struct HierarchyNodeMapUnmanaged to store unmanaged data per node that is O(1) lookup time, implemented as a sparse array.
- Scripting: Changed: Several methods have had their parameter taking a Span changed to a ReadOnlySpan, to indicate that the content of the span will not be modified and only used as input.
Hierarchy.RegisterNodeTypeHandler now returns the handler.
The Hierarchy.SortChildren method got a new parameter, to enable sorting recursively.
- Scripting: Changed: The HierarchyViewModel methods used to query flags were ambiguous because it did not specify they meant "all flags" versus "any flags". These methods are now deprecated, and new methods which specify if it is "all flags" versus "any flags" were added
- Scripting: Removed: Removed overloads of method Hierarchy.Add that did not take a parent node
- Scripting: Removed: UDP SDK package is now deprecated.
- Shaders: Added: Support for typed texture declarations in HLSL which allow developers to sample integer texture formats robustly on all platforms
- SRP Core: Added: Added TEMPLATE_X_FLT_HALF shader macros that defines functions with both min16float and float.
- SRP Core: Added: Added TEMPLATE_X_HALF shader macros that define functions using min16float only.
- SRP Core: Added: API to manage global textures
- SRP Core: Added: callbacks when RenderPipeline is created or disposed
- SRP Core: Added: Foveated rendering API to fix FSR rendering
- SRP Core: Added: New useDynamicScaleExplicit flag to render graph's TextureDesc which can be used to control the underlying RenderTexture's dynamic scaling behavior
- SRP Core: Changed: Fixed typo in RenderGraph API, using lowercase for nativeRenderPassesEnabled property
- SRP Core: Changed: Major update of the Native Render Pass Render Graph API
- SRP Core: Changed: Recent UISubset API has been adjusted and UI overlay pass made safer with URP RG.
- SRP Core: Removed: Removed TEMPLATE_X_REAL shader macros.
- TextCore: Obsoleted: Obsolete TextSettings.fallbackSpriteAssets
- UI Toolkit: Added: A string array named paths to the drag and drop API to reproduce what was available in the Editor.
- UI Toolkit: Added: API to get the result of the last binding operation for a given binding id.
- UI Toolkit: Added: disablePlayModeTint on VisualElement to opt-out of playmode tinting. Applies hierarchically so a user could retrieve the rootVisualElement on an EditorWindow to disable playmode tinting entirely on the window.
- UI Toolkit: Added: toggleOnLabelClick attribute to Toggle and Foldout. This is enabled by default but can be disabled to prevent clicking on the elements label from triggering the value change
- UI Toolkit: Changed: Added Column.comparison and sortingMode on MultiColumnListView and MultiColumnTreeView to give a default sorting algorithm for sortable columns. This replaces the previous sortingEnabled API.
- UI Toolkit: Changed: Exposed the enabledSelf property to both UXML and bindings.
- UI Toolkit: Changed: Make VisualElement.disablePlayModeTint public
- UI Toolkit: Changed: Marked UxmlTraits, UxmlFactory, and associated API as obsolete. This is now replaced by the UxmlElementAttribute.
- Universal RP: Added: Added RG path only function for AddRenderPasses using ContextContainer instead of RenderingData
- Universal RP: Added: ContextContainer items used as frame data for UniversalRenderer and Renderer2D e.g. UniversalLightData & UniversalCameraData.
- Universal RP: Added: Exposed opaqueLayerMask and transparentLayerMask in UniversalRenderingData.
- Universal RP: Added: Made Main Light Shadow Resolution and Additional Light Shadow Resolution settings public in the URP Asset.
- Universal RP: Added: Made the cascade split settings public in the URP Asset.
- Universal RP: Obsoleted: Mark non-rendergraph APIs as obsolete.
- URP: Changed: Fixing resource setters in the URP UniversalResourceData that should not be public and will introduce errors when used.
- Video: Added: WebCamKind.Unknown to be used as fallback when camera type is not recognized.

Changed
- 2D: Changed Shadow Caster 2D to provide a message that GPU skinning is not supported when it is enabled
- AI: Built-in navigation components are no longer hidden from the Add Component menu if the AI Navigation package is not installed. Instead, affected workflows provide shortcuts to install the package.
- AI: Deprecated OffMeshLink component no longer displays in the Add Component Menu under any circumstances.
- Android: The launcher/build.gradle evaluation now depends on unityLibrary/build.gradle evaluation. Therefore, the unityLibrary/build.gradle can no longer have any dependencies on the launcher/build.gradle.
- Android: Unity will no longer need to force debugging symbols if Unity Cloud Diagnostics
- Android: Upgraded the default Android Gradle Plugin version to 8.1.3.
- Android: Upgraded the default Gradle version to 8.4.
- Android: Upgraded the default targetSdkVersion and compileSdkVersion to 34.
- Android: Upgraded the Java Development Kit (JDK) version for building Android apps to 17.
- Android: When producing the symbols.zip package, the symbols will contain .so.sym or .so.dbg extension depending on the debugSymbolLevel. These extensions are provided by the Android Gradle plugin for backwards compatibility but you can still force the .so extension (for more information, check out Debug Symbol > format in the Build Settings window).
- Asset Bundles: Modified the AssetBundle hash so it now depends only on the respective Multiplayer Role settings it targets.
- Asset Bundles: Updated AssetBundle so that the AssetBundle hash now depends on Multiplayer Roles only if the feature is enabled.
- Build Pipeline: Font assets are not stripped from Dedicated Server builds when Dedicated Server Optimizations are enabled
- Build Pipeline: Made the Player Settings > Dedicated Server optimizations option, that strips all shaders and fonts, enabled by default.
- Burst: Disabled Direct call for methods that are decorated with both [BurstCompile] and [UnmanagedCallersOnly] attributes because such methods shouldn't be called directly from managed code.
- Burst: Removed all code specific to DOTS Runtime.
- Burst: Updated the default LLVM version to 16.
- Burst: Used mimalloc as the native allocator on Windows to speed up the concurrently executing LLVM work.
- Editor: Accessing Transform data from 'OnDestroy' during an Undo operation is no longer allowed and an error message is logged
- Editor: Added a new RenderingLayerMask type for serialized property and a RenderingLayerMaskField to draw it.
- Editor: Added a warning dialog to prevent users from closing the Multiplayer Playmode Clone window.
- Editor: Added command to support Hub creating a new project, and connecting a project to Unity Version Control.
- Editor: Added support for hiding RenderPipelineGraphicsSettings in GraphicsSettings page, persistent Scroll position and persistent active Tab.
- Editor: Build Report printed to the Editor log no longer contains entries for "Scripts" and "Included DLLs"
- Editor: Changed the layout of overlays when dragging over a container that would enforce a specific layout.
- Editor: Do not write cloudProjectId in ProjectSettings.asset anymore since it should only be managed by Services.
- Editor: Improved the visual anchoring of overlays.
- Editor: Modified the ghost behavi