The Unity 2020.1 beta is a milestone in the development cycle of the first TECH stream release this year, one of two 2020 TECH stream releases that lead up to the 2020 Long-Term Support (LTS) release next year.
As a token of our appreciation, everyone who tries out the 2020.1 beta and submits at least one bug report gets a chance to win one of four NVIDIA GeForce RTX™ 2080 graphic cards. See the end of this post for details on the prize draw.
On April 20, we will be hosting a webinar for people interested in a guided tour of the features and updates in this beta. You can register here and find more information at the bottom of this post.
To get started, download the Unity 2020.1 beta from the Unity Hub or from our beta page. We recommend that you check out the beta to evaluate the technology while planning your future development, and don’t use it to work on projects that are live or in production. As always, make sure you back up existing projects before you test them with beta and Preview technology. Read our guide for more details.
Below are highlights of what we’ve added across the different feature areas. Stay tuned to the blog and the Beta forum for more information on features that are in this release or are in Preview as packages.
Scripting and Profiling tools
Our Profiling tools help you get the most performance out of your applications by offering insightful views onto your performance and memory data. In this release, we’ve improved the stability, performance, and reliability of the tools.
To start, the Profiler connection to a Player is more stable, particularly with low-end Android devices. You can now also run it as a Standalone Profiler desktop app, which significantly reduces overhead and provides cleaner data when you target the Editor or Play mode.
The Profiler now includes a Flow Event feature that visualizes your Job System dependencies. You can also add metadata to your profile markers, and an extension to the Recorder API allows you to get GPU counters at runtime by using the new Sampler API. We’ve also made many improvements to the Profile Analyzer. Furthermore, we’re refactoring the Memory Profiler’s back-end, for which we have already significantly cut down on capture memory overhead and capture times. The Memory Profiler is available as a Preview package.
The Code Coverage (Preview) package lets you see which lines of your code are executed when the tests run, in addition to whether the tests passed or failed. Let us know what you think about it on the forum.
You can now get human-readable information from past build reports (Unity saves these each time you build a project) with Build Report Inspector (now a package). You can also see more details on project build times provided by the Build Report API, including a breakdown to the asset level.
The new C# debugging workflow makes the Editor run with C# code optimization by default, improving Editor performance. You can also enable debug mode without restarting the Editor.
Visual Studio integration is moving into packages. The new Visual Studio Code Editor package is in Preview. All future development will happen in the package, with the built-in support switching to maintenance mode until we remove it in a future release. We’ve already added some new features and improvements to the package, such as faster startup.
We improved support for serializing fields of generic types. In the past, if you had a generic type (such as class MyClass<T>), and you wanted to make a field using that type, you would have to define a non-generic subclass of it (like class MyClassInt : MyClass<int>). We’ve removed this limitation, so you no longer need to declare the generic subclass, and can just use the generic type directly.
Editor and workflows
Unity 2020.1 beta features many gradual improvements for your Editor workflows. These include:
- FBX enhancements (support for custom attribute data from SketchUp assets, and a new axis conversion setting)
- The option to ignore gamma correction when importing PNG files (which can help with color consistency across different platforms)
- New abilities for Presets (applying only a partial set of properties from a given Preset, and filtering in the Preset Manager based on a file’s path)
- Addressables user experience (UX) improvements
- Runtime catalog updating and sub-object support
- Support for importing asset files greater than 2 GB
- The new Directory Monitoring feature on Windows speeds up processing by only updating relevant assets. We will add support for macOS in a future release.
- A new public API and the background Progress window enable developers to expose long-running, asynchronous operations without blocking the Editor UI, and fewer user interruptions.
The Unity Accelerator lets you coordinate asset sharing when your team is working on the same local network. In this release we’ve added a local administrator dashboard for the Accelerator that enables you to configure the tool for your team’s needs.
You can now edit Prefabs in the Scene view and inside nested Prefabs.
The in-Editor Asset Store is powered by the CEF (Chromium Editor Framework), an older technology that can’t offer the performance you expect from a modern browser. In this release, we’ve removed the CEF. This means we’ve refactored the Services window and removed in-Editor Asset Store browsing. Instead, when you’re signed in and visit the Asset Store website to locate and get new assets, the My Assets menu is available in the Package Manager window. You can download and import your assets from there. This window also contains functionality for authoring packages.
We’ve also updated the Hub template for new 2D projects. This includes all verified and precompiled 2D packages and default settings optimal for 2D projects. It also loads faster than installing all the packages manually. We want to refine this to fit your needs, so please share your thoughts with us in the Improved 2D Template thread in the forums.
This release features many updates to 2D physics, including improvements to Rigidbody2D XY Position Constraint, which makes a Rigidbody completely solid under any force and has almost zero runtime cost. This feature resulted from changes to Box2D physics and was ported back to 2019.2. Per-frame Auto-Simulation enables Physics to refresh at the same rate as the rendering cycle, providing smoother physics and visuals. As well, EdgeCollider2D now lets you control the start and end points to allow overlapped edges with other colliders to maintain a continuous surface.
The new Sprite Packer Version 2 allows you to create Sprite Atlas from textures or sprites using the Scripted Importer workflow, which provides access to AssetDatabase v2 features and the Cache Server.
The Animation Rigging (Preview) package now comes with Bidirectional Motion Transfer, a workflow that lets you transfer existing motion onto active constraints and more.
Improvements are coming to our Particle System, such as the Freeform Stretching mode and Lifetime by Emitter speed module. This is useful for effects such as liquid drops or moving fire. We’ve also improved sticky notes in Shader Graph.
We are renaming UIElements to UI Toolkit. The new name better describes the set of features and functionality that the UI Toolkit contains. UI Toolkit now lets you create runtime UI with the same tools you can use to create Unity Editor extensions. We are also moving UI Toolkit to a package, which will be available in Preview later in the Unity 2020.1 beta cycle. For updates, keep an eye on the UI Toolkit forum.
Camera Stacking allows you to create effects such as a 3D model in a 2D UI, or the cockpit of a vehicle. Currently, Camera Stacking is not supported when you use the 2D Renderer or VR Multi Pass mode. Support for these will be added in upcoming versions of the Universal Render Pipeline package.
Unity 2020.1 beta also includes updates to our Ray Tracing feature (in Preview) set for the High Definition Render Pipeline (HDRP). You can now do animation in Ray Tracing via the Skinned Mesh Renderer component. Alembic Vertex Cache and Meshes with dynamic contents (see example below) are now supported via the Dynamic Geometry Ray Tracing Mode option in the Renderers menu. Join us in the HDRP Ray Tracing forum if you’re interested in trying out these features. We also have a blog article that focuses specifically on the Ray Tracing features in HDRP. You can learn more here.
This beta release also includes a number of improvements and fixes for lighting. For example, the new Light Setting Asset enables you to change settings on multiple scenes and have more control in multi-bake scenarios.
Lighting settings are no longer a part of the Unity Scene file; instead, they’re now located in an independent file that stores all the settings related to pre-computed GI. This gives you the ability to share, change or reuse lighting settings across scenes and teams.
The new Calculated Pack Margin feature adds settings to the Mesh Importer. It makes it easy to avoid UV overlapping artifacts and to get clean and correct lightmaps.
The GPU Lightmapper is getting closer to feature parity with the CPU Progressive Lightmapper, as it now supports A-Trous filtering, Baked LOD Support, Sky Occlusion Baking and includes memory improvements.
Baked Light Cookies support in HDRP will be available very soon. In the meantime, you can try the feature with the Built-in Render Pipeline.
Russian Roulette is a new method that reduces the total bake times when calculating Global Illumination. Be aware that using aggressive Russian Roulette values will likely introduce noise in your lightmaps. For more information on what’s new for lighting in Unity 2020.1, join the Global Illumination forum.
Unity Runtime for iOS devices now requires iOS 11 as a minimum version, and 32-bit builds are no longer supported. Support for OpenGL ES on iOS is deprecated (since 2019.3) and we plan to remove it in Unity 2020.2.
Advanced developers can now implement their own conversion process for output to High Dynamic Range (HDR) displays for both the legacy render and Scriptable Render Pipelines across PlayStation 4, Xbox One, and desktop platforms with a single API.
Our Device Simulator (Preview) package now comes with more devices and the option to search and filter the list of devices.
The new Caching Shader Preprocessor provides improved shader import/build performance (up to 25% lower shader compilation time) by caching the result of preprocessing the files. It applies across all platforms and render pipelines, and is Experimental in this release. You can switch it on in the Shader Compilation section of Editor Settings.
We made a number of improvements to our WebGL loader and templates. In order to improve loading performance, Unity 2020.1 will now generate a WebGL loader that is specific to the build. Unused code will be stripped from the loader, and the most efficient loading scheme will be chosen based on the selected Player settings.
We have added HDR display support for the Editor, allowing developers who use displays that support HDR to take advantage of it. This change supports DX12 and Metal.
We have also introduced a new C# API for HDR support in the Player that allows developers to overwrite the default Unity tonemapping algorithm. This enables you to create custom tonemapping and activate/deactivate HDR settings if desired.