Discover what’s new in profiling tools, graphics, Editor workflows and more. Try out the new features and let us know what you think on the Beta forum!
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.
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 in Release Mode by default, improving performance when running your project in Play Mode. In order to debug your project, you need to enable Debug Mode before entering Play Mode. You can switch between code optimization modes without restarting the Editor by selecting the Debug Button in the bottom right of the Unity Editor Status Bar.
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.
Unity 2020.1 beta features many gradual improvements for your Editor workflows. These include:
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 open a Prefab in context. When you open Prefab Mode this way, you can see the context of the Prefab instance in the Scene view (but locked for editing) even though you are not editing the instance but rather the Prefab Asset itself. Learn more about this in the Prefabs forum.
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.
Streaming Virtual Texturing technology is also included in this release. It will be supported in the High Definition Render Pipeline (9.x-Preview and later) for use with Shader Graph. Streaming Virtual Texturing is a feature that reduces GPU memory usage and texture loading times when you have many high-resolution textures in your Scene. You can preview the work-in-progress package in this sample project. Get our User Guide to learn more and let us know what you think on the forum.
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.
By participating in the 2020.1 beta, you have a chance to win one of four GPUs that we’re giving away in partnership with NVIDIA.
To enter the draw, all you have to do is identify and report at least one unique bug during the 2020.1 beta cycle and add “#Beta2020Win_NVIDIA” in the report description (the “Submission”). The contest opens at 00:01 am PT on March 17 and the submission period ends at 23:59 pm PT on May 15.
A unique bug is one that has not yet been reported at the time of submission and has been reproduced and acknowledged by Unity as a bug.
No purchase necessary. Void where prohibited. See the full rules here. We will contact the winners directly.
By joining our open beta, you will be able to try and provide feedback on the new features coming in the next TECH stream release. You’re also helping the entire community by improving the quality of our software.
If you aren’t sure how to get started, have a look at this guide to being an effective beta tester.
Watch the following video to learn more about what beta program means for us and what our beta users think.
As part of Unite Now we hosted a webinar led by Ashley Alicea, Games Evangelist. Ashley explains and demos a number of the major new features in this release. Together with Unity R&D teams, they answered questions about the new tools and technology. You can watch the webinar below.