Unity 6.3 (6000.3) 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.3 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.2 (6000.2), refer to Upgrade to Unity 6.3 for information about how your project might be affected.
Review the new features and improvements for Unity 6.3 in these areas:
This section outlines recent updates to Unity’s 2D system.
Added low-level 2D physics APIs that are an integration of Box2D v3, which is the latest actively developed version of Box2D. Box2D v3 includes multi-threaded performance improvements, enhanced determinism, visual debugging support for both Editor and Runtime, improved gizmosA 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, and more.
You can leverage the low-level 2D physics system to create physics objects directly in your 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 or to design custom components for your GameObjectsThe 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 that manage these physics objects. These APIs are available under the UnityEngine.LowLevelPhysics2D namespace. To learn more, refer to the PhysicsWorld scripting reference.
To learn more about the low-level 2D physics API, refer to:
The 2D Renderer now supports rendering the Mesh RendererA mesh component that takes the geometry from the Mesh Filter and renders it at the position defined by the object’s Transform component. More info
See in Glossary and Skinned Mesh Renderer together with 2D sprites in the same scene when using the 2D Universal Render Pipeline. When using a compatible shader, these renderers can receive lighting from 2D Lights, interact with Sprite MasksA texture which defines which areas of an underlying image to reveal or hide. More info
See in Glossary by enabling the 2D > Mask Interaction property, and be sorted with sprites when Sort 3D As 2D is enabled in a Sorting Group.
This section outlines recent updates to Unity’s accessibility systems.
Extended the screen reader support APIs to Windows and macOS, enabling compatibility of Unity applications with Narrator and VoiceOver. For more information, refer to Accessibility for Unity applications.
Added scrolling support for TalkBack (Android), VoiceOver (iOS), and Narrator (Windows). For more information, refer to AccessibilityNode.scrolled and IAccessibilityNotificationDispatcher.SendPageScrolledAnnouncement.
Made the following changes to the Accessibility API:
byte.To learn how these changes affect your project if you’re upgrading to 6.3, refer to the Accessibility API changes in Upgrade to Unity 6.3.
This section outlines recent updates to Unity’s animation system.
Due to a back end change, the overall time spent evaluating Legacy Animation has decreased by up to 30% depending on the complexity of the animated objects. The performance improvement is most significant for animations that affect large hierarchies or GameObjects, or that animate many properties.
Added the new ResetControllerState method to the Animator and AnimatorControllerPlayable classes to simplify the pooling of Animators. You can use this method to revert animators to their original state before returning them to the pool. To learn more, refer to the AnimatorControllerPlayable.ResetControllerState scripting reference.
This section outlines recent updates to Unity’s audio system.
Added a new audio signal chain using Burst-compiled C# units called scriptable processors. You can use scriptable processors to customize audio behavior by adding your own audio processing to Unity at specific integration points in the audio system. For more information, refer to Scriptable audio pipeline.
This section outlines recent updates to the Editor’s general workflows and user interface.
Added Ads Mediation (LevelPlay) to the Services menu and 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 to make it easier to discover and install the Ads Mediation package from the Unity Editor. Refer to the Getting Started with Unity guide for more information about integrating LevelPlay.
The 9.0.0 version of the Ads Mediation package includes improved SDK quality and architecture, standardized APIs, and cleaner integration for developers who integrate the Ads Mediation package into a Unity project. Refer to the Unity Package Migration guide for more information.
Improved the Build Profiles window interface for customizing build profiles. You can select only the specific settings that you want to configure through the Add Settings button in the Build Profiles window. This feature allows you to choose which settings to configure for a specific build profileA set of customizable configuration settings to use when creating a build for your target platform. More info
See in Glossary, such as:
Only the selected settings appear within their own sections on the Build Profiles window.
You can use C# 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 to configure some of these settings for specific build profiles by using these methods in the BuildProfile class:
These helper methods allow you to manage ScriptableObjects linked to a specific build profile. Each build profile can contain only one instance of the ScriptableObject type.
You can now change the appearance and location of controls in the main toolbarA 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 also create presets to save the layout of controls in the toolbar. For more information, refer to Customize the toolbar.
You can now quickly switch between Quality levels directly from the main Editor toolbar, without opening additional menus. For more information, refer to Toolbar reference.
You can now forward deeplinks to local Unity projects to automatically perform operations within the Unity Editor. Predefined deeplink operations include creating a new project, installing a specific package version, or downloading assets from the Unity Asset storeA growing library of free and commercial assets created by Unity and members of the community. Offers a wide variety of assets, from textures, models and animations to whole project examples, tutorials and Editor extensions. More info
See in Glossary. Alternatively, use the DeeplinkHandler attribute to define your own deeplink operations. For more information, refer to Deeplinking support for local projects in the Unity Hub documentation. Deeplinking requires Unity Hub 3.15 or later.
Unity Editor dialog boxes for warnings, information, and alerts now display appropriate icons. The dialog boxes can be configured to include opt-out checkboxes. For more information, refer to the EditorDialog API reference.
Overlay panels have new options to control their height and size. You can collapse and expand an overlay, drag and move it to the toolbar, or dock it at any edge 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.
To learn more about overlay properties, refer to Overlays reference.
You can now use a different version of the Hierarchy window. This Hierarchy window displays extra information about GameObjects and can alternate the color of each GameObject in the list. For more information, refer to Hierarchy window reference.
To learn how to enable the new Hierarchy window, refer to Preferences. The New Hierarchy setting is in preview and might change in future versions of Unity.
Unity Search now uses a new LMDB-based back end (the same industry-standard database used by the Asset Database). The new back end significantly improves performance, especially for incremental updates, and scales reliably to large projects.
The Search Index has been simplified for easier use with the following:
UserSettings/Search.index. All custom indices created in a project are now ignored.To customize Search indexing, go to Preferences > Search > Indexing. You can select the following options for indexing:
AssetWorker processes as soon as the Editor launches. When disabled, indexing only occurs the first time any Search API or tool is used. This option is disabled by default.Improved consistency of the Unity Editor launch screen user interactions across supported platforms.
This section outlines recent updates to Unity’s graphics systems.
To reduce the number of shaderA program that runs on the GPU. More info
See in Glossary variants Unity compiles, you can now use the new Shader Build Settings in the Graphics settings window. You can do the following:
shader_feature or dynamic_branch.For more information, refer to Reduce shader variants.
You can now use the ShaderUtil.IsGraphicsAPISupported API to check if a shader pass or compute shader is compatible with a graphics API.
Ray tracing shaders now support the following:
multi_compile and dynamic_branch keyword support for ray-tracing shaders.You can now use new overloads of the RayTracingAccelerationStructure.AddInstancesIndirect API to add multiple materials and geometries as ray tracingThe process of generating an image by tracing out rays from the Camera through each pixel and recording the color contribution at the hit point. This is an alternative to rasterization. raytracing
See in Glossary instances into an acceleration structure.
The experimental GraphicsStateCollection API has new utility methods and overrides that provide a greater degree of control:
shader, passId, and keywords.Material.ShaderVariant.Mesh, submeshIndex, and optional Renderer.sampleCount, attachments, subPasses, and other optional parameters.Both 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) and the High Definition Render Pipeline (HDRP) now use the same underlying Render Graph compiler and API. This shared back end lays the foundation for unified extensibility across pipelines and enables focused improvements and performance tuning on a single system.
You can now connect the Render Graph Viewer to player builds running on devices, including mobile and XR platforms. This gives you real-time visibility into Render Graph execution on actual hardware, so you can optimize performance.
This feature enables you to do the following:
This feature is especially useful for optimizing GPU bandwidth and performance on untethered XR devices like Meta Quest 3.
For more information, refer to Analyze a render graph and Render Graph Viewer reference.
The Render Graph utility passes now support more use cases and offer greater flexibility when creating fullscreen and copy effects. This includes the following:
AddBlitPass now returns a builder so you can further customize the pass to your needs.AddBlitPass and AddCopyPass are now used internally in FullscreenPassRendererFeature and CopyColorPass when applicable.You can now use the new unity_RendererUserValue variable to significantly improve your project’s performance when you need to make a large number of similar objects appear different within the same scene.
The new MeshRenderer.SetShaderUserValue and SkinnedMeshRenderer.SetShaderUserValue APIs allow you to specify per-renderer data in a custom 32-bit integer value and use this data to apply shader variations on a single material used by all renderers. For example, the value can include an encoded RGBA32 color, a set of UV indices across a texture atlas, or an index to a larger data structure if you need to manage larger amounts of data per renderer.
Unity references this custom 32-bit integer value as the Renderer Shader User Value (RSUV), named unity_RendererUserValue in the API. In Shader Graph, you can access it with a Custom function node.
You can also use the GPU Resident Drawer (GRD) along with the RSUV to further improve your project’s performance.
For more information about RSUV:
You can now use RenderingThreadingMode.NativeGraphicsJobsSplitThreading when targeting devices that support the Metal graphics API.
In URP, you can now use the new Kawase and Dual filtering options for Bloom post-processingA process that improves product visuals by applying filters and effects before the image appears on screen. You can use post-processing effects to simulate physical camera and film properties, for example Bloom and Depth of Field. More info post processing, postprocessing, postprocess
See in Glossary to improve performance, especially on low-end hardware and platforms. In the Bloom Volume Override, set the Filter as Dual for a faster alternative for mobile devices, or Kawase as the fastest option at low resolution. The default option remains Gaussian for best quality.
The filtering method affects the visual appearance of the Bloom effect, so you need to adjust the properties for each method separately. For more information, refer to Bloom Volume Override reference for URP.
This section outlines recent updates to the lighting system.
The OpenCL-based GPU LightmapperA tool in Unity that bakes lightmaps according to the arrangement of lights and geometry in your scene. More info
See in Glossary is now the default light baking back end. The GPU Lightmapper has been out of preview for several months, so this feature is now the default for new projects and new lighting settings assets.
You can now use the Rotate tool to rotate the transform of the reflection probesA rendering component that captures a spherical view of its surroundings in all directions, rather like a camera. The captured image is then stored as a Cubemap that can be used by objects with reflective materials. More info
See in Glossary’ influence volume in URP. This feature makes it easier to light scenes that aren’t axis-aligned convincingly. The reflection probe rotation happens at runtime and is enabled by default for new projects, and opt-in for existing projects.
You can generate tighter, more efficient lightmapsA pre-rendered texture that contains the effects of light sources on static objects in the scene. Lightmaps are overlaid on top of scene geometry to create the effect of lighting. More info
See in Glossary by packing actual UV shapes instead of bounding boxes with xAtlas. xAtlas is the default for new scenes. Existing scenes keep the older packer to avoid layout changes. You can switch methods in the Lighting window or through the LightingSettings API. However, packing can be slower and scales with scene size.
Added a new UnifiedRayTracing API library that enables ray tracing workloads on GPUs without dedicated hardware acceleration. You can use this to run GPU raytracing on platforms that don’t support hardware ray tracing via a compute shader-based fallback. For more information, refer to Ray tracing with the UnifiedRayTracing API.
Note: Your GPU must support compute shaders to use this API.
This section outlines recent updates to Shader Graph.
You can now start from a template to create a new shader graph asset. Unity now provides a selection of various shader graph templates through the template browser window according to the render pipeline you’re using in your project. You can also create your own shader graph templates.
The material creation workflows for the following have been improved:
In the Material property for these features, you can now use the New dropdown menu to create a new material along with its associated shader graph asset, which you can further customize.
You can now use the new Graph Template Workflow option in Shader Graph Preferences to define whether Unity generates a material or a material variant from the shader graph asset created through this workflow.
The Shader Graph Preferences now include two additional options to customize your shader graph creation workflow experience: * You can choose whether you want Unity to automatically open the Shader Graph window every time you create a new shader graph asset. * You can choose whether you want Unity to automatically expand the preview area of every node you create in a shader graph when that node supports previewing.
You can now choose from 8 UV channels (UV0 to UV7) in the UV node to access custom data you might have stored on your meshes in these channels.
You can now control how the data is interpolated when you transfer custom data from the vertex stage to the fragment stage with a custom interpolator. You can apply the default linear interpolation, disable perspective correction, or keep values constant per triangle.
When you add a keyword or a property in a sub graph, you can now choose to promote it to the final shader, which allows exposing it as a material property. This allows you to create self-contained subgraphs and simplifies the process of authoring shaders by composition.
You can now create your own custom lighting shaders and materials through Shader Graph in URP. The URP Unlit material type now includes new properties that enable custom lighting model authoring.
Multiple graph examples and additional templates are available to help you get started with custom lighting in Shader Graph. To use these, import the Custom lighting sample through the Package Manager.
You can now create your own custom terrain shaders and materials through Shader Graph in URP and HDRP. This new functionality includes the following:
Multiple graph examples are available to help you get started with terrain shader customization in Shader Graph. To use these, import the Terrain Shaders sample through the Package Manager.
You can now create your own custom UI Toolkit compatible shaders and materials through Shader Graph in URP. This new functionality includes the following:
This section outlines recent updates to Visual Effect Graph.
You can now manage sticky notes in a Visual Effect Graph in the following ways:
This section outlines recent optimization updates.
This section outlines recent updates to the Unity ProfilerA window that helps you to optimize your game. It shows how much time is spent in the various areas of your game. For example, it can report the percentage of time spent rendering, animating, or in your game logic. More info
See in Glossary.
The Profiler now contains a Captures List which contains a list of saved Profiler sessions in your project. You can use the Captures List to navigate between saved Profiler sessions without having to manually import a capture every time. For more information, refer to Profiler window reference.
The Highlights Profiler module now contains a details pane which provides an overview of the amount of time spent on GPU and CPU resources, and the categories that contributed the most amount of time in the Profiler capture. You can use it to evaluate the entire capture, or a selection of frames. For more information, refer to Highlights Profiler module reference.
Adaptive Performance is now more deeply integrated into the Unity Editor and provides cross-platform support:
To upgrade Adaptive Performance in your project, refer to Upgrade to Unity 6.3.
The Frame Debugger now supports Variable Rate Shading (VRS) on DX12 and Vulkan. The Frame Debugger shows the base shading rate, the Primitive and Fragment ShadingRateCombiners, and the shading rate image as a render pass attachment with an enlargeable preview.
This section outlines recent updates to Unity’s Package Manager.
Added functionality to check for package signatures to maintain a healthy ecosystem that keeps projects secure and stable. For more information, refer to Package signatures.
Use the following tools to rapidly iterate on creation and distribution of Unity Package Manager (UPM) packages:
package.json file. For more information, refer to Edit the package manifest.Added a Locate button to the Package Manager window. This button highlights the selected package’s package.json file in the Project window, so you can open or inspect it directly. For more information, refer to Locate the manifest file.
Added the ability to pin a package version for direct dependenciesA direct dependency occurs when your project “requests” a specific package version. To create a direct dependency, you add that package and version to the dependencies property in your project manifest (expressed in the form package_name@package_version). More info
See in Glossary in your project. You can use the new pinnedPackages property in the project manifestEach Unity project has a project manifest, which acts as an entry point for the Package Manager. This file must be available in the <project>/Packages directory. The Package Manager uses it to configure many things, including a list of dependencies for that project, as well as any package repository to query for packages. More info
See in Glossary file to force your project to use a specific version of a package. The Package Manager uses the pinned version of the package, even if another package version is more compatible with your version of the Unity Editor. For more information, refer to the pinnedPackages property in the project manifest file.
Added a Manage dropdown menu in the Details panel, and gathered most action buttons for UPM packages into this menu.
Also added the following new actions to the new Manage dropdown menu:
Packages folder. The copied package is mutableYou can change the contents of a mutable package. This is the opposite of immutable. Only Local packages and Embedded packages are mutable.package.json in your default script editor.Added the following visual and functional enhancements to the Package Manager window:
.unitypackage extension. Asset packages are a handy way of sharing and re-using Unity projects and collections of assets. More info
This section outlines recent updates to Unity’s physics system.
You can now disable and strip the physics integration SDK from your project. This can result in a smaller build size for certain build platforms and more optimized resource usage. To learn more, refer to Disable and strip the physics integration from your project.
This section outlines recent updates to platform-specific tools and settings.
This section outlines recent updates to the Android platform.
Updated the minimum supported Android version to 7.1 (API level 25).
In Unity version 6.3 and newer, support for x86–64 (Magic Leap) target architecture is limited to existing projects only.
Deprecated support for the round and legacy icons. The recommended best practice is to use the adaptive icons. For more information, refer to Icon in Android Player settings.
UnityWebRequest now uses HTTP/2 protocol by default, providing improved loading times and faster networkingThe Unity system that enables multiplayer gaming across a computer network. More info
See in Glossary capabilities when communicating with web servers. The support for HTTP/2 protocol applies to Android, Embedded Linux, Linux, macOS, PS4, PS5, Universal Windows Platform, and Windows platforms.
On Android, you can force the use of HTTP/1.1 protocol using the Force UnityWebRequest via HTTP/1.1 setting in Android Player settings > Other Settings > Configuration. For more information, refer to Android Player settings.
Added support to retain the orientation, resizability, and aspect ratioThe relationship of an image’s proportional dimensions, such as its width and height.
See in Glossary behaviors on applications targeting Android 16 with the new App Category Player setting. Starting with Android 16, the Android OS ignores these fixed settings for large screen devices. You can use the App Category Player setting to categorize your application as a game, which ensures that your game application is exempted from these changes. This setting replaces the obsolete PlayerSettings.Android.androidIsGame API.
For more information, refer to Android 16 behavior changes for large screen devices.
The Dedicated Server Linux platform now supports Arm64 architecture.
This section outlines recent updates to the Embedded Linux and QNX platforms.
Added a new windowing class: GameWindow. The GameWindow API is available under the UnityEngine.Windowing namespace for Embedded Linux and QNX platforms, and it provides control over Player window properties.
Use the GameWindow API to monitor and modify window properties such as title, size, position, display, and fullscreen mode. The API also enables handling asynchronous operations including moving and resizing windows.
Embedded Linux and QNX builds now include stack protection compilation, which detects buffer overflows and prevents related vulnerabilities to improve security.
You can now configure the properties of your Unity application windows using the new environment variable UNITY_QNX_WINDOW_CLASS_LIST. This allows you to override Unity’s default windowing behavior by using the platform-specific window properties, such as display index, position, size, and hardware pipeline. For more information, refer to Application window configuration using environment variable.
This section outlines recent updates to the Web platform.
You can now connect the Unity Profiler to a running Web build using the device’s IP address. For detailed instructions, refer to Profile a Web build.
The IL2CPPA Unity-developed scripting back-end which you can use as an alternative to Mono when building projects for some platforms. More info
See in Glossary scripting back end now uses variable-size indices for its metadata. This optimization reduces the overall metadata size and leads to smaller application build sizes for some projects. The change applies automatically during the build process and requires no action.
The Emscripten toolchain now runs natively on Apple Silicon hardware. Previously, Web platform builds on Apple Silicon Macs required the Rosetta 2 translation layer. This update removes that dependency, resulting in faster build times. The change is automatic and requires no action.
Added a new D3D12 Device Filter Asset in Player Settings > Other Settings > D3D12 Settings. This feature allows you to control D3D12 API usage and graphics jobs mode for specific Windows devices at runtime.
The asset uses filter lists to determine which Windows devices should use the D3D12 API and specify the preferred graphics jobs mode. This helps you ensure that your application runs optimally across a range of Windows devices. For more information, refer to D3D12 API and graphics jobs mode configuration.
This section outlines recent updates to Unity’s UI Toolkit.
The UI Test Framework is a new package for automated testing of the UI Toolkit. It provides APIs that simulate complex interactions such as mouse clicks and movements, keyboard input, and scrolling. It optimizes state management for faster test execution, improves reporting and debugging, and ensures compatibility with the latest UI Toolkit features, helping you verify that your UI behaves as intended.
UI Toolkit now supports CSS-style filters on a sub-tree of elements, enabling custom post-processing effects such as opacity, tint, grayscale, sepia, invert, and blur. You can apply these filter styles using USS or directly through UI Builder. This allows you to enhance visuals and create effects like uniform transparency, color tints, and image blurring across UI elements.
For more information, refer to USS filter.
The Vector Graphics package is now a core module that is fully integrated with UI Toolkit. You can import SVG assets directly as Vector Images without installing a separate package. Note, though, that SVG 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 creation and UGUI support still require the installation of the package. This update adds built-in antialiasingA technique for decreasing artifacts, like jagged lines (jaggies), in images to make them appear smoother.
See in Glossary support via UI Toolkit’s tessellation methods, providing smoother, higher-quality visuals for vector content. For more information, refer to Work with vector graphics.
Previously, you had to use --unity-image in combination with other USS properties to set the source, scaling, and tint color for the Image element. Now, you can use the source attribute in UXML, along with other attributes, to define the image source and control scaling and tint color directly. You can also add and manage an Image element directly in UI Builder. For more information, refer to Image.
The Advanced Text Generator (ATG) now supports the following Rich Text tags:
<a><align><b><br><cspace><i><mark><mspace><noparse><s><u><link><sprite>ATG now powers text rendering in the Unity Editor and has support for line-breaking rules.
UI Toolkit now supports creating shaders with Shader Graph, allowing you to create unique visual styles and effects for your UI elements, such as gradients, animations, or color blending. For more information, refer to UI Shader Graph.
You can now use the USS aspect-ratio property to set a width-to-height ratio of an element. It’s equivalent to the aspect-ratio CSS property. You can set it in UXML, UI Builder, or C# script inline style.
You can now check the pseudo-state of a control in UI Toolkit. This helps you debug and verify that styles apply correctly based on the control’s state. For an example usage, refer to Check pseudo-state of a control.
You can now animate UI Toolkit text at the glyph level with TextElement.PostProcessTextVertices to control vertex position, tint, and UV coordinates before rendering.
This section outlines recent updates to Unity’s extended reality (XR) support.
Added on-tile post-processing, which enables you to use certain URP post-processing techniques on untethered XR platforms with reduced impact on GPU performance. On-tile post-processing can result in significant graphics performance improvements on standalone XR devices such as Meta Quest, Android XR, and other OpenXR runtimes.
Refer to On-tile post-processing (URP) for more information.
Added Meta’s packages for XR development to the Partner Packages section of the platform browser when you add the Meta Quest build profile. The platform browser makes it easier to install your chosen packages from Unity and Meta to develop for Meta Quest devices. Refer to Meta Quest build platform and build profile for more information.
Added support for automatically changing the display resolution based on current device performance. Refer to Automatic viewport dynamic resolution for more information.