Be among the first to see what new features and enhancements Unity has for you in the next 2019 TECH stream release. In this beta, we’ve included the popular Polybrush tool as a package, added the Unity Distribution Portal to get your games and apps to new global audiences, improved and expanded the toolsets for mobile, lighting, 2D, XR, and more.

Unity 2019.2b is available right now via the Unity Hub (under Installs > Beta Releases), which you can download on the official beta landing page. Joining the beta enables you to evaluate the next Unity version and its features/packages for your project and workflow. We’re eager to get your feedback before our official release to make sure we deliver the best tools and experience to your team. Additionally, you will have the chance to win a Samsung S10+ device. See the end of this post for details.

Mobile improvements

Optimized Frame Pacing for Android, developed in partnership with Google’s Android Gaming and Graphics team, provides consistent frame rates by enabling frames to be distributed with less variance. This results in a smoother gameplay experience.

We have added OpenGL multithreading support (iOS) to improve performance on low-end iOS devices that don’t support Metal. For both iOS and Android, we have added OpenGL support for SRP Batcher to improve CPU performance in projects that use the Lightweight Render Pipeline (LWRP).

Additionally, we have introduced screen brightness controls via the new Screen.brightness property (iOS and Android); improved the ReplayKit API (iOS); and to make it easier to adjust your UI, we’ve added support for detecting the bounding box around the notch(es) (or camera hole) on Android via the new Screen.cutouts property. We also added an APK size check using Android App Bundle so it’s easier to know the final application size for different targets.

Here’s how you can implement the Screen.cutouts function to visualize the safe area and cutout information in your project:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 var res = Screen . currentResolution ; var safeArea = Screen . safeArea ; var cutouts = Screen . cutouts ; StringBuilder safeAreaInfo = new StringBuilder ( $ "Resolution (Width × Height): {res.width}x{res.height}

" ) ; safeAreaInfo . Append ( $ "safeArea (X x Y / Width × Height):

" ) ; safeAreaInfo . Append ( $ "{safeArea.x} x {safeArea.y} / {safeArea.width} x {safeArea.height}

" ) ; if ( cutouts . Length > 0 ) { foreach ( var c in cutouts ) { GUIDrawRect ( c , Color . green , "" ) ; safeAreaInfo . Append ( $ "cutout (X x Y / Width × Height):

" ) ; safeAreaInfo . Append ( $ "{c.x} x {c.y} / {c.width} x {c.height}

" ) ; } } Else safeAreaInfo . Append ( "No cutouts detected" ) ; GUIDrawRect ( safeArea , Color . red , safeAreaInfo . ToString ( ) ) ;

Polybrush is now a package in preview

You can now sculpt complex shapes from any 3D model, position detail meshes, paint in custom lighting or coloring, and blend textures across meshes directly in the Editor. Compatible with Unity since 2018.1, Polybrush 1.0.0 is now available via the Package Manager. This version includes a Mesh and Prefab scattering mode.



New 2D features in LWRP and Shader Graph

Soon after this release, the Lightweight Render Pipeline (LWRP) will be updated with the experimental 2D Renderer, which contains 2D Pixel Perfect and the new 2D Lights. Learn more about 2D lighting in this talk from GDC 2019.

Additionally, Shader Graph now has 2D Masternodes to create 2D Unlit and Lit sprite shaders.

Lighting updates

Lightmap denoising now works on all Editor platforms, regardless of GPU manufacturer. We have also made a fundamental change in how you configure the baking – any object can contribute to a global illumination bake, regardless of whether it’s probe-lit or lightmapped. This opens up new possibilities for probe workflows, which we will continue to improve. In addition, this release includes major speed improvements, especially during lighting iterations with GPU Lightmapper.

Lightmapping now supports the Intel Open Image Denoise library

This new cross-platform library from Intel is an AI-based denoising filter. In Unity, it will improve your lightmapping workflow and lightmap quality by post-processing lightmaps. This produces smooth, noise-free lightmaps that use far fewer samples. For details, watch our Unity GDC 2019 talk on the subject.

Probe-Lit GI Contributors

We have changed the terminology for objects that are Lightmap Static, which from now on will Contribute GI instead. You may choose if objects that Contribute GI should receive GI from Light Probes or lightmaps. A new drop-down menu on mesh renderers, skinned mesh renderers, and terrains lets you choose if the object should get GI from lightmaps or from Light Probes.

GPU Lightmapper improvements

In this release, the GPU Lightmapper (Preview) takes some important steps towards feature parity with the CPU Lightmapper. The GPU Lightmapper now has:

Multiple Importance Sampling support for environment lighting.

Support for NVIDIA OptiX denoising.

Increased sampling performance when using view prioritization or small/low occupancy lightmaps.

NVIDIA OptiX AI Denoiser (for lightmaps) upgrade

The NVIDIA OptiX AI Denoiser has been upgraded for better performance, lower memory usage, and to add support for NVIDIA Turing GPUs.

New Cloud Diagnostics User Reporting SDK

Users can now take screenshots asynchronously and log bug reports while playing games and apps on Windows and UWP, which significantly reduces the performance impact. To enable this feature, switch the UserReportingPlatform to Async on the UserReporting GameObject.

Learn more about the new Cloud Diagnostics User Reporting SDK on our documentation page on GitHub.

TypeCache API in Editor code

TypeCache provides a fast way to access types or methods marked with specific attributes, as well as types derived from a specific class or interface. It utilizes an internal native cache that is built for all assemblies loaded by the Editor. Access this feature via the new UnityEditor.TypeCache C# API.

using UnityEditor; using System; using System.Collections.Generic; using System.Linq; public class VolumeComponent {} public class Example { static List<Type> s_VolumeComponents; static Example() { s_VolumeComponents = TypeCache.GetTypesDerivedFrom<VolumeComponent>().ToList(); } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 using UnityEditor ; using System ; using System . Collections . Generic ; using System . Linq ; public class VolumeComponent { } public class Example { static List < Type > s_VolumeComponents ; static Example ( ) { s_VolumeComponents = TypeCache . GetTypesDerivedFrom < VolumeComponent > ( ) . ToList ( ) ; } }

Reach millions of new users in global markets

The Unity Distribution Portal (UDP) lets you scale your business and significantly expand your user base by easily distributing mobile games and apps on app stores in local markets around the world. UDP automatically creates builds for each of the participating stores and enables distribution regardless of individual store requirements.

UPD (currently in preview) enables you to publish on Catappult/Aptoide (worldwide) and MOO Store (Southeast Asia), and it will soon be connected to ONE Store (Korea) and Jio Games Store (India), with more to follow. Get started now.

AR Foundation

In this release, AR Foundation includes support for face-tracking, 2D image-tracking, 3D object-tracking, and environment probes (all in preview).

Face-Tracking (ARKit and ARCore): You can access face landmarks, a mesh representation of detected faces, and blend shape information, which can feed into a facial animation rig. The Face Manager takes care of configuring devices for face-tracking and creates GameObjects for each detected face.

(ARKit and ARCore): You can access face landmarks, a mesh representation of detected faces, and blend shape information, which can feed into a facial animation rig. The Face Manager takes care of configuring devices for face-tracking and creates GameObjects for each detected face. 2D Image-Tracking (ARKit and ARCore): This feature lets you detect specific 2D images in the environment. The Tracked Image Manager automatically creates GameObjects that represent all recognized images. You can change an AR experience based on the presence of specific images.

(ARKit and ARCore): This feature lets you detect specific 2D images in the environment. The Tracked Image Manager automatically creates GameObjects that represent all recognized images. You can change an AR experience based on the presence of specific images. 3D Object-Tracking (ARKit): You can import digital representations of real-world objects into your Unity experiences and detect them in the environment. The Tracked Object Manager creates GameObjects for each detected physical object to enable experiences to change based on the presence of specific real-world objects. This functionality can be great for building educational and training experiences in addition to games.

(ARKit): You can import digital representations of real-world objects into your Unity experiences and detect them in the environment. The Tracked Object Manager creates GameObjects for each detected physical object to enable experiences to change based on the presence of specific real-world objects. This functionality can be great for building educational and training experiences in addition to games. Environment Probes (ARKit): This detects lighting and color information in specific areas of the environment, which helps enable 3D content to blend seamlessly with the surroundings. The Environment Probe Manager uses this information to automatically create cubemaps in Unity.

HDRP for VR (Preview)

The High-Definition Render Pipeline (HDRP) is a prebuilt, high-fidelity Scriptable Render Pipeline designed for projects running on compute-shader-compatible platforms. By design, HDRP provides you with tools to create anything from games to technical demos at the highest resolution. In this release, HDRP includes support for your VR projects (Preview). This support is currently limited to Windows 10 and Direct3D11 devices, and must use Single Pass Stereo rendering for VR in HDRP. A full list of constraints can be found here.

Editor features available via Package Manager

Some features are now available as packages, making the Editor leaner and more modular. For example, Ads, 2D Sprite Editor, and 2D Tilemap Editor are now easy to integrate, upgrade or remove via the Package Manager.

You can get access to all these new features and more by downloading the beta from the Unity Hub or here.

Report bugs and get a chance to win a Samsung Galaxy S10+

As a participant in the Unity Beta Program, you can provide us with valuable feedback on the new Unity version, which will help us improve and finalize it before the full release (if you haven’t participated in a Unity beta release before, see this guide for how to be an effective beta tester). As a token of our appreciation, 5 lucky beta testers will win a Samsung Galaxy S10+ device.

To enter the sweepstakes, you have to identify and report at least one original bug during the 2019.2b cycle and tag your report with #Unity2019Beta in the report description (the “Submission”). You can find the official rules and conditions here. We will announce the winners in the 2019.2 official release blog post and on the Beta forum.

We developed the new Adaptive Performance feature (in Preview) in partnership with Samsung. The Samsung Galaxy S10 is one of the first devices to support the feature. Learn more here.

Release notes

As always, refer to the release notes for the full list of new features, improvements, and fixes. You can provide us with feedback for the features on our forums as well.