We are excited to announce the release of the Unity 5.6 beta. The beta release is available to all Unity users, including Personal Edition users.
We hope that your projects will benefit from the many features and improvements in the 5.6 beta. We look forward to your input and to delivering increasingly polished releases throughout this coming beta cycle.
Please check the release notes for a list of the known issues.
If you are not already part of our Beta Program, it’s simple to get started. Head over to our beta testing section on Unity3d.com, check the guide and download the installer to get access.
Vulkan is a new generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs on desktop and mobile platforms. It’s designed to take advantage of multiple CPU cores by allowing multiple threads to run in parallel. This means increased speed with reduced driver overhead and CPU workload, leaving the CPU free to do additional computation or rendering. In total, we’ve seen a rendering performance improvement out-of-the box up to 60% using Unity - that is without having to deal with any specifics of the Vulkan API.
In the 5.6 beta, use Vulkan to take the graphics performance to the next level, and at final release, Vulkan will run on Android, Windows, Linux, and Tizen.
The 5.6 beta also includes a lot of improvements for overall graphics, including the Particle System and GPU Instancing.
The new DrawMeshInstancedIndirect function allows you to draw many instances of the same mesh using an instanced shader with arguments supplied from a ComputeBuffer. This new way of rendering instances via script has almost no CPU overhead.
In Unity 5.5, we added support for attaching custom data to your particles, which can be accessed from both script and shaders. In the 5.6 beta, we have extended this system, so that you can configure it directly in the Inspector, making it simple to define curves and colors, which can be used to drive custom logic in your scripts and shaders. As a bonus, colors defined in this module can also make use of the High Dynamic Range, something that hasn't been possible with our particle system until now.
We have added a physically based rendering material validator enabling Albedo and Specular values to be validated against acceptable ranges. Albedo values can also be validated against user defined luminance ranges.
We have also added support for Metal Compute in 5.6 beta for both iOS and macOS. The compute shaders are written in HLSL just as for other target graphics APIs in Unity, and they get translated to Metal Shading Language (currently limited to Metal v1.1).
As for the animation system 5.6 beta supports tracking of the view position to keep it in place when navigating between State Machines of an AnimatorController, thereby avoiding unnecessary scrolling.
Finally we have also added EncodeToEXR to Texture2D. This allows you to save the content of any HDR texture to an EXR file on the disk.
We’ve been working hard on more 2D support, and are happy to announce several new 2D features in the 5.6 beta.
The new Axis Distance Sort addresses Z sorting problems by enabling you to set the Transparency Sort Mode to a custom axis. With the Sorting Group Component, you can render a set of objects separately from others on the same Sorting Layer. It ensures that all renderers that are children of the sorting group are sorted together, making it useful for managing complex scenes.
The Outline Editor is a new addition to the Sprite Editor Window providing the ability to either automatically generate a selectable level of tessellation, or manually edit the mesh shape of the sprite. We have also added numerous improvements for 2D Physics, including a 2D Physics Casting API and a new 2D Contacts API. Using the new CompositeCollider2D you can now merge multiple types of colliders into one combined collider.
We’re introducing 9-Slice, a 2D technique which allows you to reuse an image with variable dimensions without preparing multiple assets. This allows you to stretch or repeat defined areas of an image as dimension changes, providing a quick technique for creating platforms or backgrounds while still using a small amount of texture memory.
The particle collision code for 2D colliders has also been completely rewritten using the new SIMD library, resulting in a significant performance increase.
The 5.6 beta contains a complete new Video Player rebuilt from scratch with hardware accelerated performance in mind, high resolution 4K playback is now possible on even modest handheld hardware, along with videos supporting alpha channel.It aims at using the video hardware capabilities of both the editor and target platforms. It has H.264/AAC hardware support available on a wide variety of platforms, and VP8/Vorbis software implementation for situations where using H.264/AAC is not possible or desirable. Support for other codecs will be added in the future. The Video Player simply works as a new game object component for playing back movies in your scene to provide immersive interactive video experiences with high quality hardware accelerated performance. We are also working on 360 degree support for the Video player. To see a demo of how it works check out the keynote from Unite 2016:
For those not familiar with Unity Collaborate already, it’s a new cloud based service enabling small teams to save, share, and sync their Unity project, so the team is always up to date. It’s easy to use so the entire team can contribute to the Project, regardless of location or role, thereby improving the workflow significantly.
Based on customer feedback from earlier Betas, we’ve added some of the most requested features including Partial Publish, which lets users to publish selected files; previously, you’d have to publish all changed files at once.
With Ignore Files you are also able to ignore files and directories in your project you don’t want to push to the project, and the new Rollback feature enables you to open up the Collaborate History window and in just a few clicks revert the changes to your preference.
Unity Performance Reporting automatically collects application errors, across devices and platforms, so it’s easier for you and your team find and address issues in real time. Performance Reporting for Unity 5.6 beta will capture and report crashes recorded for iOS games. Expect support for even more platforms in the future. For now, try out Performance Reporting on your Unity project. No code required, just click the On switch for “Performance Reporting” in the Services window.
The beta supports native Google Daydream. To get optimal performance and latency from the platform, we integrated with the Daydream NDK to leverage the platform’s asynchronous reprojection and VR performance modes.
Compared to the Google VR SDK for Unity released at Google I/O, we now provide a more streamlined workflow, significant optimizations and reduced latency. No prefabs, scripts or manual manifest modifications are required to get started–simply enable VR and add Daydream as a targeted platform to begin making your own virtual worlds.
We have also made it easy to switch in and out of VR mode so that your applications can easily expand to the Google VR audience. You can also have your application target Google Cardboard with native support. Applications which target Cardboard will work on older devices so you can reach as many users as possible. At this time, Cardboard support is exclusive to Android with iOS Cardboard support coming soon.
If you are interested in learning more about Google Daydream with Unity, see the Unite 2016 Daydream presentation.
With Gameroom, Facebook has introduced an easier way for developers to bring high-quality games to the PC, and take full advantage of the CPU and GPU native power as a dedicated PC app separated from the news feed.
Everything you need comes integrated with Unity out of the box, from sharing content with Facebook friends to handling in-app purchases—you can even upload your builds to be hosted by Facebook directly from the Unity Editor.
It can sometimes be hard to tell what objects in your scene should and should not be colliding, especially when the Render and Collision meshes are out of sync. To help you quickly inspect the collision geometry in your scene, we have added a debug view mode for physics collision geometry. It’s designed to provide a "ground truth" for what is going on in our physics middleware and to quickly find the corresponding Colliders in the Unity scene. It also serves as a profiling tool as it can hide all sleeping Rigidbodies, as well as show all concave MeshColliders.
We've exposed two new functions, Physics.ComputePenetration and Physics.ClosestPoint, to help with writing custom depenetration functions. This is useful for custom character controllers as well as other game code where you need extra control over how something reacts to the surrounding Colliders. The functions exposed don't require to position anything prior to the call thus saving on the cost of updating the spatial search structures.
Notice there is a moving sphere as well as the static capsule. The sphere is moved around while clearly overlapping the capsule. Notice as well that there is a red ray from the centre of the sphere showing the direction and distance the sphere needs to be translated by in order to be completely separated apart from the capsule
We have several other features coming in 5.6 cycle which are not part of this beta release. The most notable is the new Progressive Lightmapper for baked lightmaps providing fast iterations and predictable ETA
When we launched Unity 5.0, we replaced Beast with Enlighten for both baked and realtime global illumination (GI). The brand-new inhouse solution for baked lightmaps is built on industry leading technology, which greatly increases baking performance, makes bakes much more robust and less prone to producing artifacts.
Progressive lightmapping greatly improves the workflow for baking lighting in a scene, and we have added an ETA on the progress bar so it’s easy to see when the bake will finish.
To see the progressive lightmapper in action check out the keynote from Unite 2016.
In beta 2 we’ll add light modes. Light modes are replacing mixed mode lighting, providing flexible and efficient ways to merge baked and realtime shadows. This come with the ability to bake shadowmasks, providing seamless “past realtime shadow distance” shadows. The result will be a high reduction in realtime shadow distance for increased performance. Realtime shadow fade out has been added for every light type and rendering path.
We have also redesigned the lighting window for better usability, and added a new Light Explorer window to streamline the work of lighting artists.