Unity 歷史版本列表
Unity 是一個遊戲開發生態系統:一個強大的渲染引擎完全集成了一整套直觀的工具和快速的工作流程來創建交互式的 3D 和 2D 內容; 輕鬆的多平台發布; 成千上萬的質量,在資源商店和知識共享 community.For 獨立開發者和工作室,Unity&rsquo 的現成的資產; S 民主化生態系統摔破的時間和成本障礙,創造獨特的美麗的遊戲。他們使用 Unity 打造民生做他們喜歡的事情:創建遊戲... Unity 軟體介紹更新時間:2021-11-17
更新細節:
What's new in this version:
- Added Mobile SmartScan mode
- Added translation to French and Turkish languages
- Fixed minor bugs
更新時間:2021-11-17
更新細節:
更新時間:2021-11-11
更新細節:
What's new in this version:
Fixed:
- users not being automatically logged in after upgrading their app
- an innocuous error message appearing on mac during install
更新時間:2021-11-11
更新細節:
What's new in this version:
Improvements:
- Physics: Change "Collider2D.GetShapeHash()" so that it calculates the hash incrementally rather than when entirely when it is called. This results in the time take being constant rather than scaling as the number of physics shapes increases.
- Visual Scripting: Eliminating domain reload cost for users when not using Visual Scripting
API Changes:
- Apple TV: Added: Added identifier for 2nd generation Apple TV 4K
- Apple TV: Changed: Changed identifiers for Apple TV HD and first generation Apple TV 4K
- Editor: Added: EditorStyles.iconButton is now public so custom editor windows can implement help, settings and other icon buttons
- iOS: Added: Added identifiers for all iPhone 13 models, 6th generation iPad Minis, 9th generation iPads
- Shaders: Added: It is now possible to query tags on each subshader and pass
- URP: Added: URP global setting for stripping off shader variants
- URP: Added: URP global setting for stripping post processing shader variants
Changes:
- HDRP: Changed the max distance for Light Anchors to avoid unstability with high values
- HDRP: In path tracing, camera ray misses now return a null value with Minimum Depth > 1
- Package: com.unity.purchasing has been updated to 4.1.0
- URP: Main light shadow, additional light shadow and additional light keywords are now enabled based on urp setting instead of existence in scene. This allows better variant stripping
Fixed:
- 2D: Fixed a case where quads generated in the Skinning Editor would be created with the wrong size and position
- 2D: Fixed an issue where an error would show up when destroying a Sprite Skin component while deep profling
- 2D: Fixed an issue where copying mesh and bone data from a .psb containing a single sprite would throw an exception
- 2D: Fixed an issue where IK Solvers would not be updated when previewing an animation clip
- 2D: Fixed artifacts on images when flatten for PSDImporter.
- 2D: Fixed case where colliders do not extend to the end of the sprite texture when Sprite Borders are enabled
- 2D: Fixed case where Edge and Polygon colliders have missing edges on certain open-ended shapes
- 2D: Fixed case where enabling Fill Tessellation and setting profile's fill offset to positive causes errors
- 2D: Fixed case where Sprite Shapes appear only when their pivot is revealed in the Scene view
- 2D: Fixed exception "PsdInvalidException: Unrecognized layer section type" when importing certain files.
- 2D: Fixed render texture size error in the Skinning Editor
- 2D: Removed memory requirement check since we cannot properly determine if there will be enough memory to import the file in PSDImporter
- 2D: [RuleTile] Fixed error in RuleTileEditor when removing all Rules and adding a new Rule
- AI: Fixed crash caused by the Navigation system on editor shutdown
- Android: Asset packs located in Packages should be properly supported
- Android: Fixed bug where Display.systemWidth, Display.systemHeight and Screen.resolutions[] is not updated when folding/unfolding a Galaxy Fold device
- Android: Fixed crash when using Application.Quit with Optimized Frame Pacing
- Animation: Fixed a potential crash when generating asset previews, if destructive methods are called in user callbacks
- Asset Bundles: Fixed crash when reloading an AssetBundle after recompiling scripts in playmode
- Asset Import: Configure button now immediately enabled when switching Animation type to Humanoid
- Editor: Backported fix for a bug which prevented the access token to be refreshed after it expired. This issue required the user to close and reopen the editor every time the access token expired to get it refreshed.
- Editor: Drag-and-drop in Editor windows no longer raises errors about unfreed allocations
- Editor: Fixed a crash on Apple silicon devices when using crunch compression
- Editor: Fixed erroneous "Unfreed allocations" error messages in the console
- Editor: Fixed launching a Linux standalone player whose folder is in $PATH
- Editor: Fixed Mask Field not being wide enough for long layer names
- Editor: Fixed number fields not reverting to zero after becoming empty
- Editor: Fixed warning when instantiating a read-only scene template with new dependencies
- Editor: Inspector AnimationCurve field does not try to show both the context menu and the curve editor when right-clicked now
- Editor: Recent Mac Metal editor change delayed frame updates by 1, affecting selection feedback - this is now fixed
- Editor: Recent Mac Metal editor change delayed frame updates by 1, affecting undo/redo update time - this is now fixed
- GI: Fixed crash when generating lighting which calls print function with incorrect parameters
- Graphics: Descriptor sets were not validated properly under certain circumstances for Vulkan
- Graphics: Fixed alpha dilation filtering when a 16 bit-per-component texture with transparent pixels is imported
- Graphics: Fixed incorrect NativeArray de-allocation error when using the results of Texture2D.GetPixelData in multiple jobs per frame
- Graphics: Fixed incorrect texture settings for externally created textures
- Graphics: Fixed player error and memory leak when player window is hidden
- Graphics: Fixed read/write access on NativeArray after an AsyncGPUReadback request is fulfilled
- Graphics: Resolved an issue where AssetPreview.GetAssetPreview would sometimes return a texture in the incorrect color space when the project itself was set to Linear color space
- HDRP: Fixed emissive value when switching between HDR and LDR mode.
- HDRP: Fixed performance on PrepareLightsForGPU by burstifying light loop.
- Input: Recent Mac Metal editor change delayed frame updates by 1, affecting keyboard input lag - this is now fixed
- iOS: Added support for iPhones, iPads and Apple TV released in 2021
- Package: Fixed a usability issue where in some cases searcher would suggest one collapsed category of results that user would have to manually expand anyway, now searcher auto-expands the single suggested category
- Fixed searcher bug that caused incorrect search results with non whitespaced queries for nodes with spaces in their name and for subgraphs
- Fixed bug that causes search results to not be visible sometimes in the searcher window
- Fixed bug that causes exceptions to be thrown when using the up/down arrow keys with search list focused
- Fixed bug that causes some searcher items to be irreversibly collapsed due to expand icon disappearing on collapsing those items
- Package Manager: Dragging and dropping Assets in projects that reference the package that they are part oft projects that are used to test packages within Unity) will now move the Assets instead of copying them
- Particles: Fixed particle face-culling when rendering into Cubemaps
- Particles: Fixed stuttering slow-motion preview when using Custom Data
- Physics: Fixed an issue with edge selection when editing the PolygonCollider2D or EdgeCollider2D are large Transform scales
- Prefabs: Fixed Prefab sorting issue that re-arranged order of prefabs due to AddedComponents not being handled properly
- Profiler: Custom Profiler counters using a custom category or a category of Audio or Video now display correctly in the chart view
- Profiler: Prevented an ArgumentOutOfRangeException occurring in the Module Editor when enabling deep profiling after deleting a module
- Scene/Game View: Backport for lightmap exposure field negative value fix
- Scene/Game View: Fixed 2D toggle not correctly positioned when starting a new 2D project
- Scene/Game View: Fixing GridSize value when using a linked field
- Scene/Game View: Fixing Increment Snapping linked property not working
- Scripting: Fixed assembly corruptionblyUpdater) in some scenarios where types moved to a different assembly
- Shadergraph: Fixed a bug that caused the Scene Depth Node in Eye space to not work correctly when using an orthographic camera
- Shadergraph: Fixed missing shader keyword stage during keyword copying.
- Shaders: Fixed an issue with Editor using some default data until a shader is imported or compiled
- UI Toolkit: Exposed ProgressBar.lowValue and ProgressBar.highValue
- UI Toolkit: Fixed minor instabilities in the layout that would cause text to wrap
- UI Toolkit: Fixed performance test issue for UI Toolkit renderer repaints
- UI Toolkit: Fixed right-click menu not appearing on Foldout header for hierarchical PropertyFields
- UI Toolkit: Fixed scissor clipping on hidden elements
- UI Toolkit: Fixed setting cursor value in :hover selector does not update cursor
- UI Toolkit: Fixed the unstable ellipsis of text
- UI Toolkit: UXML factory types are now preserved automatically
- URP: Added "Conservative Enclosing Sphere" setting to fix shadow frustum culling issue where shadows are erroneously culled in corners of cascades
- URP: Fixed a regression bug where XR camera postion can not be modified in beginCameraRendering
- URP: Fixed an issue where screen space shadows has flickering with deferred mode
- URP: Fixed for rendering thumbnails
- URP: Fixed ShaderGraph needing updated normals for ShadowCaster in URP.
- VFX Graph: Compilation error while using not exposed texture in ShaderGraph
- Virtual Texturing: Fixed issue where VT-only textures were rendered as default color in the Player when VT was disabled
- Visual Scripting: AOT prebuild works properly when building a project in batchmode.
- Visual Scripting: Fixed il2cpp crash caused by infinite recursion when generating AotStubs
- Visual Scripting: Fixed jitter on fuzzy finder.
- Visual Scripting: Fixed missing icons when the "Transition End Arrow" is on.
- Visual Scripting: Fixed missing textures after switching platform.
- Visual Scripting: Fixed variable duplication not working properly.
- Visual Scripting: Fixed Welcome Screen not opening the proper graph.
- Visual Scripting: Restoring the public icon set api.
- WebGL: Fixed a regression that prevented users from building .jspre plugins in Release mode
- WebGL: Fixed crash on Oculus Browser when the EXT_multisampled_render_to_texture extension is enabled
- Windows: Removed error.log generation for crash uploads in favor of editor.log and dmp files
- XR: Fixed all cameras stop rendering when VR headset is off.
- XR: Updated XR Interaction Toolkit to 1.0.0-pre.6 and removed it from being a discoverable pre-release package since a 1.0.0 version will not be released in the 2021 Editor version
更新時間:2021-11-05
更新細節:
What's new in this version:
API Changes:
- Shaders: Added: Added a possibility to query preprocessed shader data for a given variant
Fixed:
- Android: Further improve build times, when sequential build is done with no changes in project. Previously Unity was moving apk/aab from gradle project to final location, thus forcing the gradle to rebuild apk/aab on sequential builds, Unity will perform a copy instead now. Our tests show that sequential build times improved by 50%, for ex., dropping from 12 seconds to 5 seconds
- Android: Workaround a problem where using logcat would leak pipes on OSX. The underlying problem seems to be with C# Process class, where if you redirect streams and dispose process, the pipes would remain opened. This will be investigated separatly
- Animation: Fixed an issue where an assert was triggered upon rebuilding an animation legacy component
- Asset Bundles: Improved performance of Asset Bundle building when many bundles exist
- Asset Pipeline: Fixed an issue where MonoScripts in plugins that were dependent on plugins in other folders could fail to import when reimporting all assets
- Asset Pipeline: Fixed exception that Rider would catch when Disposing instances of the ArtifactInfo class
- Asset Pipeline: Improved opening time of Import Activity Window
- Audio: Fixed exposing multiple send levels in the audio mixer not working correctly. Note: previously created mixers with exposed send levels will cause a warning to be logged on editor startup and the send levels will have to be re-exposed
- Editor: Fixed windows editor sometimes getting into a "script assemblies are locked" state after invoking a modal dialog from a C# script
- GI: Environment lighting should not be affected by the Cast Shadows flag on the Mesh Renderer
- Graphics: Fixed a crash in ray tracing shaders when different ray payload structures are used throughout shaders that are used in a ray tracing dispatch
- Graphics: Fixed an issue were TextureIDs could leak upon recreating RenderTextures with explicit stencil views
- Graphics: Fixed inconsistent behavior of Async Readbacks in the scene view
- Graphics: Fixed issue where memory would leak from mesh due to mismatching memory labels
- IL2CPP: Avoid copying the profile.json file output by IL2CPP into the final application package for iOS
- IL2CPP: Fixed crash in player when Faster (smaller) builds is enabled
- IL2CPP: Fixed incorrect metadata section size checks (1370667)
- IL2CPP: Implement support for ConditionalWeakTable which fixes memory a leak
- iOS: Stop dark mode native mobile input's background from going transparent when it's empty
- Linux: Fixed Unity splash screen not responding to resize events
- Mono: Fixed a crash that would occur when a recursive struct was used in user code
- Mono: Fixed crash that would occur when a generic field was in a struct during burst compilation
- Mono: Fixed Superluminal symbol integration
- Particles: Fixed auto-upgrade of Collision Module plane colliders when using Prefab overrides
- Physics: Fixed the ArticulationDrive.forceLimit to actually use forces instead of impulses. Projects with custom set force limit should review values, and consider dividing them by the simulation delta
- Profiler: Fixed Timeline view's display of surrounding context frames when the recorded frame count exceeds the amount specified in Preferences/Analysis/Profiler/Frame Count
- Scene/Game View: Fixed for Scale Handle center handle inconsistencies
- Scene/Game View: Fixed GUI.Window not working when invoked from Editor.OnSceneGUI
- Scene/Game View: Fixed SceneViewLighting overlays not being displayed
- Search: Fixed NullReferenceException is thrown when typing in the Hierarchy window search bar (1360676)
- Search: Fixed search indexation incremental update of removed components or properties
- Search: Fixed search item cannot be picked in table view using SearchService.ShowPicker(...) (1371140)
- Serialization: Prevented, at serialization time, the addition of a SerializeReference instance which is a generic inflated types
- Shaders: Exceptions in IPreprocessShaders will now fail the build (1357383)
- Shaders: Fixed a crash when loading shaders with complex fallbacks that contain GrabPasses (1360664)
- Shaders: Fixed a crash when trying to use a non-UAV texture as ComputeShader UAV property
- Shaders: Fixed Compile and show code button failing to write the file if the size is over 2 GB (1357761)
- Shaders: Fixed uintBitsToFloat not doing a conversion from bool argument to uint (1334240)
- Terrain: User can no longer create brushes so immense that the editor emits an error about not being able to create a RenderTexture that large
- UI Toolkit: Added more asset conversion types to the Package Asset Converter tool
- UI Toolkit: Fixed 3 cases of inconsistencies on binding data to UI Toolkit fields
- UI Toolkit: Fixed element sometimes entering hover state when window is resized
- UI Toolkit: Fixed incorrect pointer enter events and pointer leave events in playmode using the DefaultEventSystem
- UI Toolkit: Fixed UXML layout breaking when an asset used in it is deleted from the project
- UI Toolkit: Fixed VisualElement's editor data bindings not able to be bound to SerializedProperty of type "ulong" to "long" fields
- Video: Fixed errors being spammed in the Console upon opening imported video in the Inspector tab when Target Platform is set to UWP
- WebGL: Fixed Firefox crashing on startup
- XR: Fixed depth/stencil discards not working on Quest GLES
更新時間:2021-11-02
更新細節:
更新時間:2021-11-01
更新細節:
更新時間:2021-10-29
更新細節:
What's new in this version:
Fixed:
- [Dotenv] Duplicate $_SERVER values in $_ENV if they don't exist
- [PhpUnitBridge] fix symlink to bridge in docker by making its path relative
- [TwigBundle] fix auto-enabling assets/expression/routing/yaml/workflow extensions
- [String] Fix inflector for "zombies"
- [Messenger] Fix TraceableMessageBus implementation so it can compute caller even when used within a callback
- [Lock] Fix incorrect return type in PostgreSqlStore
- [Framework][Secrets] Fix service definition when local vault is disabled
- [DependencyInjection] Fix autowiring tagged arguments from attributes
- [VarDumper] Fix dumping twig templates found in exceptions
- [Messenger] Fix Redis Transport when username is empty
- Fix logging of impersonator introduced in 5.3
- [Messenger] Fix unwrapping the Postgres connection in DBAL 3
- [Messenger] fix: TypeError in PhpSerializer::encode()
- [Config] Fix files sorting in GlobResource
- [HttpClient] fix collecting debug info on destruction of CurlResponse
- [DependencyInjection] fix "url" env var processor
- [HttpClient] fix RetryableHttpClient when a response is canceled
- [Uid] fix 4 missing bits of entropy in UUIDv4
- [Runtime] Fix class validation of composer "extra.runtime.class"
- [VarDumper] Fix error with uninitialized XMLReader
- [Notifier] [RocketChat] Fix undefined index for message id
- [Notifier] Fix 'Undefined array key' error in FirebaseTransport
- [Validator] Fixes URL validation for single-char subdomains
- [Form] Fix ChoiceType to effectively set and use translator
- [Translation] Use symfony default locale when pulling translations from providers
- [HttpClient] fix missing kernel.reset tag on TraceableHttpClient services
- [Cache] Commit items implicitly only when deferred keys are requested
- [Cache][Lock] fix SQLSRV throws for method_exists()
- [VarDumper] Fix handling of "new" in initializers on PHP 8.1
- [Translation] [Bridge] [Lokalise] do not export empty strings
- [DependencyInjection] fix support for "new" in initializers on PHP 8.1
- [HttpClient] accept headers when CURLE_RECV_ERROR is received before the content
- [Serializer] Attributes that extend serializer`s annotations are not ignored by the serialization process
- [PhpUnitBridge] Do not override correct triggering file for return type deprecations
- [Serializer] Fix denormalizing XML array with empty body (5.x)
- [Serializer] Fix denormalizing XML array with empty body (4.4)
- [Security] Remove annoying deprecation in UsageTrackingTokenStorage
更新時間:2021-10-27
更新細節:
What's new in this version:
- Install Windows 2k/XP/2003/2008/2012/Vista/7/8.x/10 x86/x64
- Practically runs even on the most minimalistic WinPE
- Choose able drive letter for the new Windows installation
- Install Windows also if nlite/vlite has remove winnt32.exe/setup.exe
- Integrate Drivers: normal PNP and Textmode Drivers also
- patch uxtheme to allow unsigned Themes
- Some tweaks
- Support "Windows to Go" for Windows 7 and later installs
- Supports WimBoot option for Windows 8.1 Update 1
- supports all current WIM files: WIM/SWM (XPRESS / LZX / XPRESS HUFFMAN = Wimboot compression)
- supports unencrypted ESD files (LZMS compressed WIM)
更新時間:2021-10-26
更新細節:
What's new in this version:
Features:
- 2D: Added a new template to allow users to start a new project with 2D Renderer set up
- 2D: Added support for users to create and define scriptable tools for the Tile Palette window
- Android: Added a default texture compression format option to Player Settings
- Android: Added support for building and running Android apps on Chrome OS devices with x86 and x86-64 CPUs
- Android: Added support on Android for split-screen, pop-up and freeform windows
- Android: Changed so users can now include custom asset packs into the build by adding assets to the directory ending with '.androidpack'
- Android: When building Android App Bundle with Split App Binary enabled, Unity will create asset packs
- Asset Import: Added an artifact file dependency system to the AssetImportContext. For more information, see AssetImportContext.GetArtifactFilePath and AssetImportContext.GetOutputArtifactFilePath.
- Asset Pipeline: Added ArtifactDifference Reporting messages to the Artifact Browser
- Asset Pipeline: Added Accelerator authentication support using Unity ID
- Asset Pipeline: Added Import Activity Window. This allows you to look at import times, previous revisions, list dependencies, see importers used and import duration over time.
- Asset Pipeline: Support for importing models and textures in parallel in external processes (off by default, enable in Project Settings ->; Editor ->; Refresh.
- Burst: Added a new optimization mode, Balanced. This is now the default optimization mode, and trades off slightly lower maximum performance for much faster compile times.
- Burst: Added an OptimizeFor option to [BurstCompile], allowing users to specify whether they want to prioritize runtime speed, runtime size, or compilation time.
- Burst: Added Embedded Linux as a new target platform for Burst
- Burst: Added Embedded Linux toolchain resolution mechanism
- Burst: Added experimental half precision floating point type f16
- Burst: Added experimental support for Arm Neon intrinsics half precision floating point
- Burst: Added experimental support to the Burst compiler package for some ArmV8.2A intrinsics (dotprod, crypto, RDMA)
- Burst: Added source location metadata into hash cache
- Burst: Added support for basic vld1 ARM Neon intrinsics
- Burst: Added support for calling Burst code directly from C# without using function pointers
- Burst: Added support for creating profiler markers from Burst code
- Burst: Added support for having [return: MarshalAs(UnmanagedType.U1)] or [return: MarshalAs(UnmanagedType.I1)] on external functions with a bool return type
- Burst: Added support for new intrinsics
- Burst: Added support for the C# 8.0 construct default(T) is null
- Burst: Added support for the latest LLVM 11 code generation benefits to the Burst compiler package
- Burst: Added the option to call BurstCompiler.CompileFunctionPointer() in Burst code
- Burst: Added warnings about delegates being used by BurstCompiler.CompileFunctionPointer that are not decorated as expected. In most cases, Burst will automatically add the C-declaration attribute in IL Post Processing, but if the usage of CompileFunctionPointer is abstracted away behind an open generic implementation, then Burst will not be able to automatically correct the delegate declaration, and thus this warning will be displayed.
- Burst: Added workarounds for issues where Windows Native Debuggers restrict the number of messages and DLLs that can be sent to the debugger when attaching
- Burst: Apple silicon support
- Burst: Assemblies are now allowed to have an [assembly: BurstCompile()] attribute which allows you to specify compile options that apply assembly wide. For example, [assembly: BurstCompile(OptimizeFor = OptimizeFor.FastCompilation)].
- Burst: Burst 1.6 release cycle is for 2021.2
- Burst: Exceptions thrown from Burst can now contain a callstack
- Burst: Made it possible to get a pointer to UTF-8 encoded string literal data in HPC# code via StringLiteral.UTF8()
- Burst: The Burst compiler package now fully supports ARMv7 and ARMv8-A Neon intrinsics
- Burst: To support modding, added support for loading additional burst compiled libraries in Play mode and standalone builds
- Burst: Unity now automatically adds the [UnmanagedFunctionPointer(CallingConvention.Cdecl)] attribute to any delegates that are used for BurstCompiler.CompileFunctionPointer(). An error occurs if a delegate has the attribute but is not Cdecl.
- Core: Added Screen.mainWindowPosition, Screen.mainWindowDisplayInfo, Screen.GetDisplayLayout() and Screen.MoveMainWindowTo() APIs. See Scripting API documentation for more information.
- Editor: Added a Diagnostics section to the Preferences window to help with remote troubleshooting. You shouldn't interact with this section unless instructed to by Unity Support
- Editor: Added support for two new menu states, "disabled" and "checked", in Unity Search
- Graphics: Added Graphics Buffer Support in VFX Graph
- Graphics: Added a new tool to set the bounds of a VFX Graph system
- Graphics: Added anisotropic filtering to the built-in inline samplers
- Graphics: Added support for DX12 on Hololens with OpenXR
- Graphics: Added support of direct link event
- IL2CPP: Added new option for "IL2CPP Code Generation" which enables faster and smaller builds by using better sharing of generics code and additional runtime overhead
- License: Introduced licensingIpc Editor CLI
- macOS: Added deep linking support
- Mobile: Adapted the scaler profiles so you can easily define and change Adaptive Performance Scalers with predefined profiles
- Mobile: Added a new adaptive view distance scaler to change the Camera.main view distance automatically
- Mobile: Added boost mode for Samsung devices. This increases CPU and GPU performance for short periods of time
- Mobile: Added Boost mode to boost the CPU and GPU for short periods of time
- Mobile: Added predefined scalar profiles that you can use to easily define and change Adaptive Performance scalers
- Mobile: Added Startup Boost mode which enables boost mode during engine startup
- Mobile: Added the ability to enable boost mode during engine startup. This increases CPU and GPU performance for a short period of time as the application starts.
- Mobile: Added the ability to request information about which and how many cores are available on the device
- Mobile: Added the Adaptive Performance feature API. This checks which Adaptive Performance features are available on the current platform.
- Mobile: Added the Adaptive view distance scaler. This scaler changes the Camera.main view distance automatically.
- Mobile: Added the Feature API to check which Adaptive Performance feature is available on the current platform.
- Mobile: Integrated Adaptive Performance into the Unity Profiler
- Mobile: Integrated the Profiler so you can Profile Adaptive Performance easily from the Unity Profiler
- Mobile: Requested cluster info to have details on which and how many cores are available on the device
- Mono: Enabled Brotli compression for Windows with the Mono runtime
- Mono: Upgraded to a recent version of Mono (~6.12), which brings most bug fixes from the upstream Mono project
- Package: (Recorder) Added support for recording accumulation, for motion blur and path tracer (HDRP)
- Package: (Recorder) Integrated the AOV Recorder into the Recorder package
- Package: Added support for macOS arm64
- Package Manager: Added new UI support for features in the Package Manager window. Added an initial list of features.
- Package Manager: Added option in the popup window, when Install for a Full Project Asset is clicked, to install the Asset into a new, temporary project.
- Package Manager: Added the ability to install a package from a browser hyperlink, including experimental packages.
- Package Manager: Added UI support for feature sets in the Package Manager window:
- Added a Lock/Unlock mechanism on packages that are part of a feature set.
- Reset a feature set dependencies to their default versions when the feature set was customized.
- Added a warning message if a feature set dependencies are already installed with a different version before installing it
- Added a visual cue on feature sets when the dependency versions change
- Added feature set information to the Inspector
- Added analytics on feature sets
- Package Manager: Changed account menu in the top bar of the editor to show your initials instead of full name
- Package Manager: Changed the Package Manager window so that when users choose to continue from the UPM dialog warning that shows an entitlement error, then launch the Editor, the Package Manager window immediately opens to the first package with an entitlement error.
- Package Manager: Swapped the advanced settings panel and the scoped registries management panel in project settings.
- Package Manager: The Package Manager now supports packages with entitlements (subscription-based licensing)
- Particles: Added a mesh weighting field to the list of meshes in a Particle System component, to control how likely Unity is to assign each mesh to a particle
- Physics: Added a new CustomCollider2D that allows custom 2D physics shapes to be used with a fully customizable and featured 2D Collider
- Physics: Added an Enable All and Disable All button to the Physics Project Settings' Layer Collision Matrix, which allows enabling or disabling all layer collisions
- Physics: Added Physics Profiler counters to the list of available counters in the Profiler Module editor window
- Physics: Added the ability to read low-level 2D physics shapes (PhysicsShape2D) from any 2D Collider into a new shape container (PhysicsShapeGroup2D)
- Physics: Exposed a set of functions to enable you to modify the contact properties of a collision before the solver receives them
- Profiler: Added ProfilerModule API to extend the Profiler window with custom modules
- Profiler: Added the File Access Profiler and Asset Loading Profiler modules to the Unity Profiler
- Profiler: The connection drop down has been revamped into a tree view that groups player connections int0 three main categories. Local, any player that is running local to the machine, this includes devices connected via cable. Remote any player that is running anywhere else on the network that is reachable. Direct connection, this is for connecting directly via IP address or any player that has automatically connected. There options are further searchable using the new search bar.
- Any connections to players which exist from before this feature will still appear though they will appear under the category of "Connection Without Id".
- Further to this there no exists an option that can be used to supply a custom connection name for the profiler which will make it easier for the user to find their desired connection. This is set through the Preferences->;Anaylsis option or via the command line "-connection-id" when launching a player from the command line.
- Scene/Game View: Added support for component tools to the EditorToolContext
- Scene/Game View: Introduced new Overlays feature. Tools and contextual views are now available directly in the Scene View, and are completely customizable
- Search: Added a new explicit provider to search performance metrics
- Search: Added new extended search picker workflow and API
- Search: Added search expression language to evaluate multiple search queries and apply set operations, transformation or other user defined operations
- Search: Added search table support to build advanced reports using complex search expressions
- Shaders: Added support for specifying package requirements for SubShaders and Passes to ShaderLab
- Shaders: Introduced keyword space separation
- Shaders, compute shaders and materials now operate in separate local keyword spaces. All keywords declared in a shader or in a compute shader using any of the multi_compile* or shader_feature* directives are local. Material and Compute Shader classes now operate with local keywords only.
- Global keyword space contains global keywords. Global keywords are converted to local keyword space of a shader or compute shader prior to rendering. When a shader or a compute shader declares a keyword that has the same name as a global keyword, turning this global keyword on or off will affect variant selection.
- Terrain: Added a new instancing mode for Terrain details, which uses the material specified on the prototype prefab to render detail objects with instanced draws
- UI: Added preference to enable or disable extended Dynamic Hints
- UI Toolkit: Added a context action in the UI Builder Hierarchy to export an element to a UXML file
- UI Toolkit: Added a contextual action to unpack a template in a document in the UI Builder
- UI Toolkit: Added contextual actions to unpack a template completely in UI Builder
- UI Toolkit: Added runtime access to the PanelSettings object and the UIDocument component. Runtime UIToolkit rendering no longer requires the UIToolkit package.
- UI Toolkit: Added support for negative transform scaling on x and y axes, enabling mirroring to be performed. When crossing zero, the geometry will be regenerated to flip the winding.
- UI Toolkit: Added support for rendering antialiased vector shapes without MSAA in UI Toolkit
- UI Toolkit: Added support for up to 7 levels of stencil-based masking
- UI Toolkit: Added the DynamicColor usage hint that allows border/background/text color to change dynamically without having to regenerate the geometry
- UI Toolkit: Added transform-origin, rotate, scale and translate to the supported properties by UI Toolkit
- UI Toolkit: Added Transitions properties to the UI Toolkit
- UI Toolkit: Attribute overrides can be added, edited and removed in a template instance using UI Builder
- UI Toolkit: ListView now supports dynamic item height as a virtualization method. For more information, see ListView and CollectionVirtualizationMethod.
- UI Toolkit: Updated the UIElementsGenerator tool to the latest version
- Version Control: Added auto sign in when logged into Unity account
- Version Control: Added workspace migration from Collab to Plastic which can be done with or without Plastic installed
- Added notification status icons
- Added light and dark mode versions of the avatar icon
Version Control: Improvements to Plastic SCM:
- Added support for inviting other members. This option is available from the gear / settings icon.
- Added support for signing in with Cloud Edition. This is available during the onboarding screen if you have never signed in.
- Added support for turning off Plastic in their project. This option removes the Plastic metadata from your directory. This option is available under Assets >; Plastic SCM >; Turn off Plastic SCM
- Added notification on the Plastic SCM tab title to indicate incoming changes. Users will no longer need to have the Plastic SCM window visible to know there are incoming changes.
- Auto configuration of SSO
- Added date column in incoming changes
- WebGL: Added support for compressed audio in WebGL
- WebGL: Added the Debug Symbols player setting to create release builds with embedded function symbols for improved profiling and error stack traces
- WebGL: Added the texture subtarget build setting to WebGL
- WebGL: Enabled ETC/ETC2/ASTC/BC4/BC5/BC6/BC7 compressed texture formats for WebGL in editor, build and runtime
- XR: Added support for controller late latching, which can reduce latency between rendering and tracked input (head and hand-held controller) in XR. Can be used with the Mesh Renderer and the Skinned Mesh Renderer.
- XR: Reduced render latency in URP with Late Latching
Improvements:
- 2D: Added folder support for SpriteAtlas V2 in 2D
- 2D: Cached internal reflection to speed up Sprite editing data access
- 2D: Improved performance for setting multiple Tiles on a Tilemap
- 2D: Improved performance of RuleTile caching
- 2D: Improved performance when importing large number of textures
- 2D: Improved the placement of Tiles generated from Sprites with Textures sliced using the Isometric Slicing option in the Sprite Editor
- 2D: Prereleased the SpriteShape and PSDImporter package
- 2D: Updated icons for the Tile Palette Rotate and Flip tools
- 2D: Updated the 2D template to use the latest verified 2D packages
- 2D: Updated the 2D URP template starting folder structure for better clarification of usage
- 2D: Updated the Skinning Editor tooltips text
- AI: Added the RasterizeModifierBox profiler marker for the NavMesh builder step that processes ModifierBox sources
- Android: Added a new Android/Chrome OS player setting, "Chrome OS Input Emulation". If un-checked, this option disables Chrome OS's default behavior of converting mouse and touchpad events into touchscreen events. This allows an app to implement more complete support for these input devices. Also, fixed a bug with Android/Chrome OS touchpad scrolling.
- Android: Added boot-config/command-line switch platform-android-cpucapacity-threshold. This specifies which CPU cores to treat as big cores. The cpu capacity is a value in the range between 0 and 1024. A capacity value of 870 yields the same behavior as before the fix for case 1349057.
- Android: Added support for custom cursors to Android to support Player Settings and C# functions on Android version 7.0 and later
- Android: Allow low-level configuration of Unity threads (priority, affinity)
- Android: Changed the device scanning operation of the Android Extension to be async when receiving an USB device changed event
- Android: If a hardware keyboard is available, Unity now uses it within UI systems, instead of always bringing up a virtual, on-screen keyboard
- Android: Made a large part of the Android Build Pipeline incremental which means sequential builds with zero changes are now much faster. That also means Unity no longer creates builds from scratch, but instead updates the files which dependencies have changed. If you use the IPostGenerateGradleAndroidProject callback, note that it might be operating on files which were modified by IPostGenerateGradleAndroidProject from a previous build.
- Android: Unity gradle projects now have a new entry in gradle.properties, unityTemplateVersion. Unity increments this property whenever Unity gradle template files change. That way if you build on top of the old folder and the unityTemplateVersion is different, Unity throws an error, saying that you need to update your gradle files or build to an empty folder.
- Android: When generating manifest files, there are new files in LibraryBeeartifactsAndroidManifest, LibraryManifestDiag.txt, LauncherManifestDiag.txt. They contain information about why a specific permission is added to manifest.
- Asset Bundles: Added profile marker for CRC checks
- Asset Import: Documented the MonoImporter class
- Asset Import: Improved FBX model importing speed
- Asset Import: Improved import performance of ASCII FBX files
- Asset Import: Improved import performance of FBX files
- Asset Import: Improved import speed for FBX files that use the ASCII file format
- Asset Import: Improved import speed for model files containing more than 1 mesh
- Asset Import: Improved import speed of FBX models by skipping unused data
- Asset Import: Improved import speed of models that contain multiple meshes
- Asset Import: Improved import speed of Sketchup models
- Asset Import: Improved model import speed by multithreading mesh triangulation
- Asset Import: Improved model import times for models that contain animations
- Asset Import: Improved Model Importer material tab display performance
- Asset Import: Improved model importing performance for files that contain lots of curves
- Asset Import: Improved the model import times slightly for models that contain animations
- Asset Import: Increased the speed of Asset Import when using mikktspace tangent generation on meshes containing degenerate triangles
- Asset Import: Optimized the texture import mipmap calculation when using Kaiser filtering. For example, importing 16GB of textures with mostly Kaiser mip filters is reduced from 127 seconds to 109 seconds.
- Asset Import: Reduced peak memory usage during Model Importing
- Asset Import: Updated Sketchup SDK to version 2020.2
- Asset Pipeline: Added a new UI in the AssetImporter inspectors that display all AssetPostprocessors methods that were used in the last import of the selected asset.
- Asset Pipeline: Added summary in the editor log about what happened during a refresh (import).
- Asset Pipeline: Added warnings and an Automatic Fix button where main object names do not match the corresponding filename.
- Asset Pipeline: Improved directory enumeration by multi-threading it.
- Asset Pipeline: Improved project startup times. Projects with 900,000 files will load at least 30 seconds faster.
- Asset Pipeline: Improved speed of Editor startup by fixing Asset handling related code.
- Asset Pipeline: Improved startup performance for 900,000 file project by 18 seconds.
- Asset Pipeline: Improved upload and download path.
- Asset Pipeline: Optimized the UnityEngine.Hash128.ToString method.
- Asset Pipeline: The Asset Pipeline no longer displays a warning when it is not possible to move import worker log files.
- Asset Pipeline: Unity prefetches Asset Databases to improve Editor startup time and reduce cost of page faults
- Audio: Added a new Attenuation transition type to AudioMixer so that it can perform equal power panning for group attenuations when transitioning between snapshots
- Audio: Added voice priority display in the audio pane of profiler
- Audio: Added VU metering information from audio mixer groups in the audio pane of profiler to make it easier to compare it against volume and audibility levels
- Audio: Improved the way Unity displays audio mixers inside the Audio Profiler window when the Groups and Channels and Groups view modes are enabled
- Previously, Unity applied the column-based sorting from the Channels view mode to the other view modes, which resulted in inconsistent sorting of channels and groups below mixers, and in mixers changing their order dynamically. This made the Audio Profiler window hard to read.
- Unity now shows the names of the mixers in the Profiler where it previously only showed the ambiguous Master groups of the mixers below the Audio Listener group.
- The triangle shape after the titles of the column headers in the Detailed and Clip views was changed to an arrow that more clearly indicates the sorting order. The arrow is now placed before the title instead of after it to avoid cutting the title off when you resize the columns manually.
- Audio: Target mixer groups are now displayed in the audio profiler
Bug Reporter: The Crash Handler window now includes the following UI changes:
- Stack trace field
- Go to crash logs button
- Report a Bug... button
- Open Unity Hub button
- Note that clicking the Open Unity Hub button restarts the Editor
- Build Pipeline: "Scripts Only Build" is now automatic for platforms using the new incremental build pipeline. The checkbox is removed for such platforms, and Unity will automatically detect if it can do a Scripts Only Build based on which changes there are in the project.
- Build Pipeline: Changed Linux so that it uses the incremental player build pipeline.
- Build Pipeline: Improved linking speed for big projects
- Build Pipeline: Improved the performance of the build pipeline by giving concurrent shader cache folders read access.
- Build Pipeline: MacOS Standalone player builds now use the new incremental build pipeline, which allows faster subsequent player builds by only rebuilding parts which have changed.
- Build Pipeline: Modified Windows Standalone player builds so that they only rebuild parts that have changed since the previous build to improve build speed.
- Build Pipeline: Removed prompt to save an untitled scene if it is not included in the build.
- Build Pipeline: WebGL now uses the incremental Player build pipeline.
- Burst: Automatically add [UnmanagedFunctionPointer(CallingConvention.Cdecl)] to any delegates that are used for BurstCompiler.CompileFunctionPointer;() or error if the delegate has the attribute and it is not Cdecl.
- Burst: Improved codegen
- Core: Modified the Dynamic Heap Allocator to reduce the time it takes to intantiate chunks in a Build
- Core: Reduced the number of memory alllocations and improved the tracking of core allocations.
- Documentation: Added a pop-up to Obsolete API labels in the Script Reference, explaining why something is obsolete, and pointing to the new API where possible.
- Documentation: Improved documentation for GeometryUtility.TestPlanesAABB to explain false positives
DX12: *Binded dynamic lightmaps resources (Enlighten) to ray tracing shaders: unity_DynamicLightmap, unity_DynamicDirectionality and unity_DynamicLightmapST. *Enabled DYNAMICLIGHTMAP_ON shader keyword for when these resources are used by Renderers.
- DX12: Added the ability to set D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION flag when adding Renderers to a RayTracingAccelerationStructure. This will allow implementation of robust colored ray traced shadows.
- DX12: Optimized uniform setup in ray tracing shaders, and added a special case for the UnityPerMaterial cbuffer
- Editor: Added a context menu to the Console window which has an option to use monospace font
- Editor: Added ability to reorder UnityEvent callbacks.
- Editor: Added missing USB device detection and reporting for Linux Editors
Editor: Added new devices to the Device Simulator:
- Apple iPad Air 2
- Apple iPad Air (4th generation)
- Apple iPhone 12 mini
- Apple iPhone 12
- Apple iPhone 12 Pro
- Apple iPhone 12 Pro Max
- Apple iPhone SE (2nd generation)
- Google Pixel 5
- Huawei P40 Pro
- OnePlus 7 Pro
- Samsung Galaxy Z Fold2 5G
- Samsung Galaxy Note10
- Samsung Galaxy Note10+ 5G
- Samsung Galaxy Note20 Ultra 5G
- Samsung Galaxy S8
- Samsung Galaxy S9
- vivo NEX 3 5G
- Xiaomi Mi A3
- Editor: Added new features for Menu Items in the context of Editor Modes
- Editor: Added Open in Property Editor menu item to the Inspector's kebab menu
- Editor: Added profiler markers around test setup, teardown, and execution
- Editor: Added Texture import overrides to the Build Settings window so you can reduce imported texture size and change the compression settings to speed up asset imports and platform switches.
- Editor: Added the Play Unfocused option to the Game view, to stop the Game view from focusing when entering Play mode. Also added an option to Edit > Preferences > General to enable or disable automatically creating a Game view on entering Play mode.
- Editor: Added the ability to cut, copy, and paste Assets in ProjectWindow
- Editor: Added the ability to search Settings by their properties
- Editor: Added the option to constrain scale proportions to the Transform component. You can set this option as default in Editor preferences.
- Editor: Added the renderer type to the UpdateRendererBoundingVolumes profile marker tooltip
- Editor: Allowed the importing of LOD meshes with indices that have preceding zeroes. By specifying a range, e.g., LOD1-3 will assign the mesh to all LOD levels in the range.
- Editor: Avoid stall entering playmode if a scene contains sequential GameObject file ID hints
- Editor: Cached the translation results, reducing GC pressure
- Editor: Changed the popup menu behaviour to only trigger a GUI.changed event if it has changed
- Editor: If the assembly containing code that is stalling the editor is available, it's now displayed in the popup progress bar
- Editor: Improved Gizmos performance in Editor
- Editor: Improved import times of SketchUp models (*.skp)
- Editor: Improved loading times for scenes with lots of GameObjects at the top level in the Hierarchy
- Editor: Improved mac editor process guard in order to catch all types of exceptions and early handle cases before shutting down
- Editor: Improved model importing performance
- Editor: Improved performance importing models with Blendshapes if the Import Blendshapes setting is unchecked
- Editor: Improved the Frame Debugger, so you can clear display color, depth, and stencil values. The compute shader displays the display shader name, keywords, and thread group size. Indirect draws display shader and property information. The Mesh preview now displays correctly on HDRP. Displays SRP Batcher draws with the names of meshes they render.
- Editor: Improved the performance of the model importer by multi-threading the mesh triangulation step
- Editor: Improving UTF documentation (DSTR-120)
- Editor: Increased speed of filtering operations when you only run a subset of tests
- Editor: Inspector number fields support more math expressions now: functions (sqrt, sin, cos, tan, floor, ceil, round), distribution over multi-selection (L, R) and can refer to current value to change it across multi-selection (+=3, *=2).
- Editor: Now shaders will have SHADER_API_(DESKTOP|MOBILE) define set according to the target build platform
- Editor: Optimized BC7 ("high quality" compression setting on PC/Console platforms) texture compression. Performance is 2-3 times faster. This optimization uses a new texture compressor (bc7e). An option is available in Editor Settings to switch to the old one (ISPC) if needed.
- Editor: Optimized drag selection in Editor scenes
- Editor: Reduced the per-test overhead of running tests in the editor
- Editor: Reduced the time taken to rebuild the test tree and to scan for assets a test created but did not delete
- Editor: Removed the Enable Code Coverage option from Preferences/General, and moved it into the Code Coverage package
- Editor: Reorganized Quality Project Settings, to make it clearer which options are relevant to which parts of Unity
- Editor: The Frame Selected command now ignores Audio Source and Reverb Zone components
- Editor: The Texture Import Settings window indicates which platforms have override settings. The window shows this with a blue line on the platform tabs.
- Editor: UI polish of Build Settings window (improved logical sort of installed platforms)
- Editor: Updated ASTC texture compressor to improve compression time by about 10%
- Editor: Updated ASTC texture compressor to reduce compression time
- Editor: Updated the Inspector property context menu 'Revert to Prefab' to work with multiple selected objects
- Editor: Updated the Renderer component so that you can click on a Material inside the Renderer component to highlight the Sub Meshes with that Material in the Scene View.
- Editor: Updated the target window of a Dynamic Hint to be focused before displaying the Dynamic Hint, if available.
- Editor: You can now drag multiple GameObjects to the Project Window to create multiple prefabs at once.
- Editor: Create Empty Parent now matches the 'selection rect' for Rect Transforms.
- GI: Added support for asynchronous environment sky updates to Enlighten Realtime Global Illumination to reduce the likelihood of frame hitches when the sky changes.
- GI: Added support for rectangular area lights to Enlighten Realtime Global Illumination.
- GI: Clarified the Indirect Bounce Shadow warning in the Light Inspector to indicate that Enlighten Realtime Global Illumination only supports this feature for Directional lights.
- GI: Ensured that analytics data about cancelled bakes are logged when the Editor closes while baking lighting
- GI: Extended support for the Lit Clustering Scene View exposure control so that it is available for lightmaps created with Enlighten Baked Global Illumination.
- GI: Hid the Show Inactive Objects and Isolate Selection checkboxes on the Static Emissives tabs of the Light Explorer because these options are not applicable to materials
- GI: Improved clarity in the GI Profiler by indicating whether the project's render pipeline supports Enlighten Realtime Global Illumination.
- GI: Improved performance by running GICache trimming jobs every 30 seconds
- GI: Improved usability by including memory-related logs in the Editor log.
- GI: Lightmap analytics events now include bakes that fell back from GPU to CPU Lightmapper.
- GI: Reduced ringing in lightmaps filtered with Intel Open Image Denoise.
- GI: Removed the Compress Lightmaps option and replaced it with a configurable Lightmap Compression setting in the Lighting Settings Asset
- GI: Removed unnecessary thread logging for Enlighten Realtime Global Illumination to improve performance
- GI: Upgraded Radeon Denoiser support to to version 1.7.0 in order to improve results generated in HDR mode
- Graphics: Added an error message that appears when a custom render texture uses a Material with an invalid or unsupported shader
- Graphics: Added ASTC texture format support for single channel textures
- Graphics: Added support for async readback when using OpenGL ES 3.0 (and later) and GL core
- Graphics: Added support for Color and Depth Load/Store actions to the Frame Debugger
Graphics: Added support for VFX.CameraBuffersFallback preferences. Select from one of 3 options:
- None: Use no fallback and keep outdated buffer info from the last rendered frame.
- Prefer Main Camera (Default): Use the buffer from the Main camera when available, and the Scene camera otherwise
- Prefer Scene Camera: Use the buffer from the Scene camera when available, even if the Main camera is being rendered
- Graphics: Added the 2D Lights tab to the Light Explorer window
- Graphics: Added the ability to remove shader Passes that contain ray tracing shaders (for example, ClosestHit, AnyHit) when ray tracing is not supported by the system or graphics API
- Graphics: Added two new functions in RayTracingAccelerationStructure - UpdateInstanceID and GetInstanceCount. The ray tracing instance ID can be accessed in HLSL code using InstanceID() intrinsic.
- Graphics: Changed Renderer components so that you can use .bounds and .localBounds setter APIs to set custom world space or local space bounds.
- Graphics: Changed the default specular reflection to use a RenderTexture with dimensions CUBE (instead of a Cubemap)
- Graphics: Changed the gear icon for the more menu on the Asset Settings Provider.
- Graphics: Enhanced the error reporting from the command buffer in order to improve GPU-side (Metal) error logging.
- Graphics: Fixed comments in shader examples from CommandBuffer.SetRayTracingShaderPass and RayTracingShader.SetShaderPass that point to incorrect functions.
- Graphics: Improved ASTC decompression performance.
- Graphics: Improved error logging for the CopyTexture function.
- Graphics: Improved the application of outstanding pending changes to RendererScene after a camera render.
- Graphics: Optimized render sorting to speed up performance.
- Graphics: Optimized Material.FindPass. The improved speed depends on how many passes the Material has.
- Graphics: Removed the redundant calls that Unity made when it set shader program parameters.
- Graphics: Set up unity_MotionVectorsParams built-in shader variable in Ray Tracing shaders.
- Graphics: Split texture postprocessor re-imports by texture type to reduce the amount of re-imports when changing a texture postprocessor script.
- Graphics: Unity can now preload shaders after it loads the first Scene, and can distribute the preloading process across multiple frames.
- Graphics: Unity now opens the Render Pipeline Asset dialog when changing asset for Quality Settings and Graphics Settings (Project Settings >; Quality, Project Settings >; Graphics) notifying that this may take a significant amount of time. You can choose to Continue or Cancel.
- Graphics: VFX : Optimization while sending event to a VisualEffect by script.
- Graphics: Virtual Texturing is now more robust when switching between color spaces.
- Graphics: You can now access Mesh and SkinnedMeshRenderer geometry data from Compute Shaders similar to Mesh.GetVertexBuffer and SkinnedMeshRenderer.GetVertexBuffer.
- IL2CPP: Added an intrinsic for Span get_Item/indexer to improve Span Indexer performance when accessing a large number of Span items
- IL2CPP: Added full support for System.Reflection.MemberInfo.GetCustomAttributesData
- IL2CPP: Added optimizations to Enum.HasFlag
- IL2CPP: Changed IL2CPP's internal build system to use bee on Android to prepare for improved player build performance
- IL2CPP: Changed il2cpp's internal buildsystem on Windows & Mac to prepare for improved player build performance
- IL2CPP: Corrected the source file hash so that a managed debugger can determine when a source file has changed and provide a proper warning
- IL2CPP: Improved the performance for invoking delegates
- IL2CPP: Improved the performance of IL2CPP conversion by using a new data model
- IL2CPP: Reduced executable size by reducing generic metadata output
- IL2CPP: Reduced the number of internal metadata allocations that relate to array method naming
- IL2CPP: Switch IL2CPP densehash map and set to sparsehash map and set for lower runtime memory usage
- IL2CPP: Updated IL2CPP to run on .NET 5
- IL2CPP: Updated IL2CPP to use the new bee distribution format
- IMGUI: Improved overall layout and repaint performance
- Input: Added Use Physical Keys setting in the Input Manager to map Input.KeyCode to physical keys
- iOS: Changed depth RenderSurfaces to have private storageMode
- iOS: Changed how plug-ins handle the wrong CPU type when creating an XCode project. CPU types that aren't supported are now ignored.
- iOS: The generated Xcode project now uses the new build system.
- Kernel: Added Memory Settings to the Project Settings window. This gives you control of the internal memory setup in Unity. You can adjust the memory setup for individual projects.
- Kernel: Improved code quality and amount of allocations in some of our base abstraction layers.
- Kernel: Improved the performance of parallel sorting code
- Kernel: Improved the stability of player connection by implementing several changes:
- Increased the number of frames to receive messages
- Fixed issue where player connection could corrupt message queue and required reconnecting to app.
- Improved handling for app disconnection (for example, when the app crashes; when the app is forced to disconnect; or when the app loses connection).
- Improved support for suspending apps on mobile platforms.
- License: Improved license validation by syncing the access token with the licensing client every time the token changes.
- macOS: Fixed the append mode for building Xcode projects.
- macOS: The generated Xcode project now uses the new build system.
- macOS: When generating Xcode project, it is now possible to pick the build config used for run action (can be changed in Xcode). Debug build config now has frame capture automatically enabled.
- Mobile: The Android Patch/Patch & Run Build Setting works for all types of changes, and is automatic. Previously, it could only be used with Script Only builds.
- N/A (internal): Altered default texture compression for EmbeddedLinux to now be configurable from the player settings
- Networking: Improved UnityWebRequest on iOS to allow system to call upload data instead of using the operation queue
- Package: Enabled alpha channel capture in projects that use HDRP in the Recorder package
- Package: Improved the migration tools so that Unity allows projects to migrate to the recent Visual Scripting version
- Package: To open the Visual Scripting editor, you can now click the open inspector button and double click a graph in the project browser
- Package: Updated names of UI elements in the Visual Scripting package to be consistent with new naming schemes
- Package: Updated the user interface of the Visual Scripting package
- Package: Visual Scripting now creates a warning message when you add more than one Input unit to a SuperUnit
- Package: Visual Scripting now creates a warning when an Input System Package event references an action that is the wrong type for that event
- Package: Visual Scripting: Migration tools are improved to let users migrate their project to the latest version of the Visual Scripting package
- Package Manager: Added new labels to package versions to clarify when a package is installed as a dependency
- Package Manager: Added support for opt-in caching of Git LFS files when you download Git packages. To enable caching, set either of the following environment variables: UPM_ENABLE_GIT_LFS_CACHE or UPM_GIT_LFS_CACHE_PATH. The latter lets you override the default cache location.
- Package Manager: Changed how string literals are translated by using string.Format at definition time
- Package Manager: Fixed the Add package from git URL option so that if you use a revision and a package path in the wrong order, you can't clone the repository
- Package Manager: Improved logging by adding logs for cache misses and tarball download steps.
- Package Manager: Improved performance when browsing "My Assets".
- Package Manager: Improved the error message when a Git dependency cannot be resolved because the path querystring and revision fragment are in the wrong order.
- Package Manager: Improved the wording on the warning message when a user is using a different version of a package than the recommended version.
- Package Manager: Included the Terrain Tools package in the Worldbuilding 3D feature set.
- Package Manager: Increased the amount of information logged in upm.log at various levels.
- Package Manager: Optimized Git package download times for repositories using submodules (with Git 2.28.0 or higher installed only).
- Package Manager: Optimized Git package download times, most notably for repositories with a larger history.
- Particles: Added a warning when users select the same shader for both the main Material slot and the Trail Material slot. This is because GPU Instanced Mesh particles must not use the same shader for particle geometry and trail geometry.
- Particles: Added an exception when too much particle data is sent to SetCustomParticleData
- Physics: Added icon for Articulation Body Anchor Transform tool
- Physics: Added new Physics Profiler metrics
- Physics: Added units of measurement to the Articulation Body properties in the scripting documentation
- Physics: Improved Articulation Body anchor limit gizmos
- Physics: Rearranged the ArticulationBody properties. Moved Damping and Friction after Mass.
- Prefabs: Added a warning to the PrefabAssetImporter editor if there are SerializeReference missing types within the Prefab. Also disabled applying modifications from the instance in case the Prefab asset contains missing types. Editing the Prefab asset in isolation preserves MissingType information.
- Prefabs: Disabled editing for missing Prefabs instances
- Prefabs: Improved the Hierarchy so that you can see which Prefab instances have non-default overrides
- Prefabs: Updated documentation for Object.DontDestroyOnLoad
- Profiler: Added missing memory labels sizes to the memory snapshot format, in order to give real value to the prexisting label list. Api for access this data will be found inside the memory profiler package
- Profiler: Added profiler memory stats data. Data is similar to the Profiler Module data found in the Profiler Window
- Profiler: Added profiler target data to memory snapshot format. Data consists of elements such as Unity version, product name, total gfx memory, total physical memory, etc.
- Profiler: Encoded managed heap section type inside the snapshot format, for retrieval via the memory profiler package
- Profiler: Improved the Memory Profiler module UI to clearly show how the high level memory stats contribute towards the total memory usage
- Profiler: Modified native connection reporting for the Memory Profiler in order to properly report connections between Assets
- Profiler: Tethered Android devices no longer require manually calling ADB commands in the CLI, in order to be picked up as connection targets by the Editor. Multiple tethered android devices are now supported.
- Scene/Game View: Added Shortcut Manager entries for "Toggle Selection Outline" and "Toggle Selection Wireframe."
- Scene/Game View: Extended the PlaceObject method to support SceneView grids and 2D
- Scene/Game View: Improved API documentation for Overlays feature, including multiple new code examples
- Scene/Game View: Improved the EditorToolContext UI
- Scene/Game View: Improved the documentation for EditorTool
- Scene/Game View: Improved the documentation for HandleUtility.PickGameObject
- Scene/Game View: Refreshed icons for Scene View toolbars
- Scripting: Certificate validation callbacks from .Net libraries pass now also previously identified root certificates along (i.e. the full validated chain if any)
- Scripting: Changed the Managed Stripping Level to be minimal for new projects when targeting the IL2CPP backend
- Scripting: Enabled user code to build against .NET Standard 2.1 and .NET Framework 4.8
- Scripting: Ensure players using the Mono scripting runtime backend always use a JIT (Just-In-Time) friendly set of class libraries, even if the ".NET Standard 2.0" API Compatibility Level is chosen. This provides consistency for Mono players no matter what API Compatibility Level is chosen in the player settings.
- Scripting: Improved runtime performance of many UnityEngine math scripting APIs when using the IL2CPP scripting back-end: Color, Color32, Math, Matrix4x4, Quaternion, Vector2, Vector2Int, Vector3, Vector3Int, Vector4.
- Scripting: Improved runtime performance of UnityEngine math scripting APIs (Matrix4x4, Quaternion, Vector2, Vector2Int, Vector3, Vector3Int, Vector4) when using the Mono scripting back-end
- Scripting: Improved search UI and indexing
- Scripting: Improved the Editor experience for setting up Unity version defines with assembly definition files
- Scripting: In this Unity version, you can schedulw managed jobs from non-main control threads
- Scripting: Multithreaded asset garbage collection and increased speed by up to 2.5x
- Scripting: OnChangedCallback is invoked when elements are duplicated in ReorderableList
- Scripting: Reduce and optimize regex usage to improve performance
- Scripting: Renamed ".NET Standard" to ".NET Standard 2.1" in the Api Compatibility Level options
- Scripting: Updated C# language version to 9.0 for compilation and IDE's
We will support a subset of the language features from:
These is the features that we support:
- Pattern matching enhancements
- Function pointers
- Target-typed new expressions
- Static anonymous functions
- Target-typed conditional expressions
- Extension GetEnumerator support for foreach loops
- Lambda discard parameters
- Attributes on local functions
- New features for partial methods.
- Scripting: CompiliationPipeline.GetAssemblies now correctly includes .NET Compiler Platform (Roslyn) analyzers in ScriptCompilerOptions.
- Search: Improved asset indexer performances and index size.
- Search: Improved asset search performance by ~4x.
- Search: Share the same search debouncing threshold with the Project Browser and the Search window
- Search: Use a single Search Provider to search for any indexed object.
- Serialization: Improved the way that SerializeReference handles missing types. Instances where the type is missing are replaced with null. Other instances are editable and if there are fields that previously referred to the missing type which are still null, the missing type is preserved.
- Serialization: Objects referenced from SerializeReference fields now have stable IDs, which reduces the risk of conflicts when multiple users collaborate on a scene file. Additionally, it also improves support for Undo and Prefab modes, especially when SerializeReference is used inside arrays and lists. In addition, references now come with a new format with backward compatibility support for older assets.
- Shadergraph: Added View Vector Node doc
- Shaders: Improved caching of the Shader import artifacts when a shader is reverted or has no changes after a reimport
- Shaders: Reduced memory consumption when loading shaders
- Shaders: Removed the fixed shader keyword limits. The number of Global keywords is now limited to UInt32, the number of local shader keywords is now limited to UInt16.
- Terrain: Improved the worst-case performance while painting on high-resolution (2k x 2k or higher) Terrain heightmaps
- Terrain: Terrain brushes that sample empty regions at the edge of a terrain now sample the nearest terrain's edge. This corrects brush preview off the edge of a terrain, and corrects the bug of melting terrain edges for the following brushes: Smooth Height, Contrast, Sharpen Peaks, Slope Flatten, Hydrolic, Thermal, Wind, Pinch, Smudge and Twist.
- Tests: Improved the logging in iOS automation so that existing log messages are clarified, and added new ones.
- UI: Added a visualization for the raycast padding around a Graphic object
- UI: Improved tooltips so that when a tooltip is displayed, hovering another UI control that can display a tooltip makes the new tooltip appear immediately
- UI: Reused PropertyFields backing fields when possible
- UI: Updated the icons for Terrain's tool selection
- UI Toolkit: Added a new RuntimeDefault theme with less overhead for runtime usage
- UI Toolkit: Improved UI Toolkit event debugger. Improvements include optimizations, adjustable UI, settings, event and callback filtering, and event replay.
- UI Toolkit: Improved USS validation to support more complex properties.
- UI Toolkit: Made performance improvements to reduce the number of managd heap allocations while rendering sprites in the UI Toolkit
- UI Toolkit: Modified buttons to be focusable
- UI Toolkit: Modified TransitionEvents to be collapsed when relevant
- UI Toolkit: Set UIDocument's execution order to -100 to ensure root visual element is created when user's OnEnable runs
- UI Toolkit: Usage hints can now be changed on a VisualElement without having to remove it from the hierarchy to help preserve styling and layout
- Undo System: Added the Undo history UI
- Version Control: Added Checkin and Update confirmation notification
- Version Control: Improved load time performance
- Version Control: Made stability and performance improvements to the Version Control package (com.unity.collab-proxy)
- Video: Improved the automatic selection of target material texture properties in VideoPlayer It detects [MainTexture] attributes, then detects them by the _MainTex naming convention
- Virtual Texturing: Updated tile requests to be returned via PopRequests more frequently
- Virtual Texturing: Updated InvalidateRegion calls to generate new tile requests in their "importance" order. The importance is defined as a combination of the tile's screen space size and the the number of frames since the tile has been requested. This makes completing tile requests contribute more to the rendering result when InvalidateRegion is called continuously.
- Web: Updated UnityWebRequest's libCurl backend (used on most platforms).
- WebGL: Added support for Screen Orientation Locking and Auto-Rotating for mobile browsers which supports the Screen Orientation API.
- WebGL: Refactored unityInstance.Quit() in UnityLoader.js and call QuitCleanup from both unityInstance.Quit() and Application.Quit().
- WebGL: Updated WebGL compiler to Emscripten 2.0.19 and removed support for the obsolete asm.js linker target.
- Windows: Changed Alt + Enter to default to native resolution which makes the image more crisp and reduces the chance of letterboxing.
- XR: Added support for adding new reference objects at runtime. Added support for ARCore session recording and playback.
- XR: Removed "Preview" text from UI display element
API Changes:
- 2D: Added: Added a Vector3Int constructor accepting two integers for x and y, with z set to 0.
- 2D: Added: Added GetAnimationFrameCount, GetAnimationFrame, GetAnimationTime, SetAnimationFrame and SetAnimationTime to get and change the animation timings for Tiles on the Tilemap.
- 2D: Added: Added GetTilesRangeCount and GetTilesRangeNonAlloc to get the positions and Tiles between a given start and end positions in a Tilemap.
- 2D: Added: Added SetTile/s API using a TileChangeData struct to allow users to set a Tile at a position with color and transform at once instead of invoking 3 calls to do so.
- 2D: Added: Allow user to register for notification when the SpriteRenderer's Sprite property has changed.
- 2D: Added: New API to query SpriteAtlas information IsIncludedInBuild and GetMasterAtlas.
- 2D: Added: Support for default sprite mask material in URP and public api method to retrieve the default 2d mask material.
- Android: Added: Added AndroidJavaObject.CloneReference to enable having multiple references to the same Java object
- Android: Added: New APIs to manage fast-follow and on-demand delivered asset packs. The APIs wrap Google's PlayCore functionality.
- Android: Added: TargetDevices player setting, so users can select if they want their Android application to run on all devices, just Android phones, tablets, and TV devices, or just Chrome OS devices.
- Animation: Changed: Marked obsolete AnimationMixablePlayable.Create(PlayableGraph graph, int inputCount, bool normalizeWeights) due to unused parameter normalizeWeights. Added new method AnimationMixablePlayable.Create(PlayableGraph graph, int inputCount)
- Asset Bundles: Added: Added public API to specify the amount of memory reserved for the shared AssetBundle loading cache.
- Asset Bundles: Added: New API DownloadHandlerAssetBundle.autoLoadAssetBundle for loading AssetBundles asynchronously from DownloadHandlerAssetBundle.
- Asset Import: Added: Added removeConstantScaleCurves in Model Importer
- Asset Import: Added: AssetPostprocessor.OnPreprocessCameraDescription and AssetPostprocessor.OnPreprocessLightDescription.
- Asset Import: Added: New public methods MonoImporter.SetIcon/GetIcon and PluginImporter.SetIcon/GetIcon.
- Asset Pipeline: Added: Added a method to the TextureImporter to get the source texture width and height.
- Asset Pipeline: Added: AssetDatabase.SaveAssetIfDirty() to save a specific asset, rather than making a call to AssetDatabase.SaveAssets().
- Build Pipeline: Added: Added the BuildOptions.CleanBuildCache flag to force the incremental player build pipeline to do a clean rebuild of everything.
- Build Pipeline: Added: Callback function BuildPlayerProcessor.PrepareForBuild. This callback can be implemented by users who wish to produce artifacts before the build starts, or to add StreamingAssets to a build without first putting them in the project assets folder.
- Build Pipeline: Deprecated: PackedAsset.file has been deprecated. Instead, to find the matching report file for a particular asset the recommended way is to do a filename lookup in the report.
- Burst: Added: Intrinsics: Neon - Added support for basic vld1 APIs.
- Editor: Added: API on the QueryEngine to better control filtering.
- Editor: Added: Callback to run validation step on materials using a ShaderGUI: `ValidateMaterial(Material).
- Editor: Added: Introduced Control modifier key to ShortcutManager.
- Editor: Added: Make DraganDrop API to allow user to cusmize drop in legacy window (ProjectBrowser, hierarchy, sceneview).
- Editor: Added: Making hyperLinkClicked public. It is now possible to subscribe to the event EditorGUI.hyperLinkClicked to handle click on a TextField with ;; tag.
- Editor: Changed: AndroidArchitecture.x86 and AndroidArchitecture.x86_64 have been renamed with capital X's. They are now AndroidArchitecture.X86 and AndroidArchitecture.X86_64.
- Editor: Changed: Decorated EditorGUIUtility.GetIconForObject/SetIconForObject obj parameter with [NotNull].
- Editor: Changed: PlayerSettings BuildTargetGroup dependent properties now receive NamedBuildTarget in the API.
- Editor: Changed: Visibility of EditorGUIUtility.GetIconForObject/SetIconForObject from internal to public.
- Editor: Obsoleted: Obsoleted internal method MonoImporter.CopyMonoScriptIconToImporters with [Obsolete] and a WarningMessage when called.
- GI: Added: Added two new callbacks. Unity calls LightProbes.needsRetetrahedralization whenever the current registered probes and tetrahedralization are out of sync. Unity calls LightProbes.tetrahedralizationCompleted after (re-)tetrahedralization is done.
- GI: Added: Added LightingSettings.lightmapCompression, which makes it possible for users to select a quality level for lightmap compression.
- GI: Added: Made it possible to opt out of generating a scene's automatic ambient probe and default reflection probe.
- GI: Deprecated: Deprecated LightmapSettings.textureCompression and replaced it with LightingSettings.lightmapCompression.
- Graphics: Added: "Expand/Collapse All" buttons to Rendering Debugger window menu.
- Graphics: Added: A new API for compiling shaders from editor code and obtaining reflection info was added to ShaderData.Pass.
- Graphics: Added: A new player setting "Upload Cleared Texture Data" was added to revert to the old default behavior of uploading initialised data to video memory when creating a texture from script.
- Graphics: Added: Added a blitter utility class. Moved from HDRP to RP core.
- Graphics: Added: Added a class for drawing shadow cascades: UnityEditor.Rendering.ShadowCascadeGUI.DrawShadowCascades.
- Graphics: Added: Added a realtime 2D texture atlas utility classes. Moved from HDRP to RP core.
- Graphics: Added: Added an option to change the visibilty of the Volumes Gizmos (Solid, Wireframe, Everything), available at Preferences >; Core Render Pipeline
- Graphics: Added: Added class for drawing shadow cascades UnityEditor.Rendering.ShadowCascadeGUI.DrawShadowCascades
- Graphics: Added: Added CommandBuffer.SetGlobalInteger()
- Graphics: Added: Added common include file for meta pass functionality
- Graphics: Added: Added Editor window that allow showing an icon to browse the documentation.
- Graphics: Added: Added Fallback Material to DrawSettings.
- Graphics: Added: Added helper for Volumes (Enable All Overrides, Disable All Overrides, Remove All Overrides)
- Graphics: Added: Added IndentLevelScope (for VolumeComponentEditor child class only) to handle indentation of the field and the checkbox.
- Graphics: Added: Added new API function inside DynamicResolutionHandler and new settings in GlobalDynamicResolutionSettings to control low res transparency thresholds. This should help visuals when the screen percentage is too low.
- Graphics: Added: Added new API functions with no side effects to [DynamicResolutionHandler] to retrieve resolved dynamic resolution scale (DRS) and to apply DRS on a size.
- Graphics: Added: Added new API to customize the rtHandleProperties of a particular RTHandle. This is a temporary work around to assist with viewport setup of Custom post process when dealing with DLSS or TAAU.
- Graphics: Added: Added new API to replace the use cases of the ShadowAuto, DepthAuto and VideoAuto GraphicsFormat enum members (which will be deprecated in the future)
- Graphics: Added: Added new utils functions to access and set data on SphericalHarmonicsL2.
- Graphics: Added: Added OverridablePropertyScope (for VolumeComponentEditor child class only) to handle the Additional Property, the override checkbox and disable display and decorator attributes in one scope.
- Graphics: Added: Added project-