Search Unity

Unity ID

Unity 5.6

Package downloads

Select the runtime platforms of your choice from the list below (the desktop runtime is included as standard) or, to install the full complement of runtime platforms, use the download assistant installer above.

Editor: Added TreeView IMGUI Control, which can display hierarchical data that can be expanded and collapsed. Additionally, it allows you to create list views and multi-column tables for Editor tools. Also check out the MultiColumnHeader and SearchField IMGUI Controls.

Editor: Mac: Added experimental support for using the Metal rendering backend on the Editor. This is disabled by default; to enable it, go to Edit > Project Settings > Player > Other Settings and tick the Metal Editor Support checkbox.

Editor: Windows: All Visual Studio installs are now shown in the External Script Editor list.

Editor: Windows: Visual Studio 2017 installs with the Unity workload are now detected automatically and added to the External Script Editor list.

Facebook: Added "Facebook" as a new Build Target Platform. This allows you to publish your builds to Facebook using either WebGL or the Facebook Gameroom Windows app.

GI: Added Light Modes, which replace mixed mode lighting and provide flexible ways to merge baked and realtime shadows. As part of this:

Added ability to bake shadowmasks.

New Lighting window layout.

Added Light Explorer window.

GI: Added new experimental feature: Progressive Lightmapper. This is a robust lightmapper based on path tracing, with progressive updates. It provides baked lightmaps and Light Probes, presents the first output quickly, and iteratively improves it over time.

Global illumination is calculated at lightmap resolution.

No dependency on Enlighten.

Normal requirements regarding lightmapping UVs: non-overlapping UVs with small area and angle errors, and sensible padding between the charts.

Graphics: Added physically-based rendering Material validator. You can now validate Albedo and Specular values against acceptable ranges. Albedo values can also be validated against user-defined luminance ranges.

Graphics: Support for DrawMeshInstancedIndirect, where draw arguments are supplied from a ComputeBuffer.

Graphics: Support for Procedural Instancing, where instance data is supplied via a custom source in the Shader, rather than from Material Property Blocks.

Graphics: Vulkan rendering backend added for Android, Linux and Windows. It is not used by default yet; drag it to the top of Graphics API list in Player Settings (menu: Edit > Project Settings > Player) to use it.

IL2CPP: Added support for Windows Runtime when targeting Windows Store and Xbox One players with .NET 4.6 API Compatibility Level. See the Unity User Manual documentation on IL2CPP for more information on Windows Runtime support.

IL2CPP: Unity in-app purchase now works on Windows Store with IL2CPP scripting backend.

Multiplayer: Added client websocket support for macOS, Linux and Windows.

Multiplayer: Added websocket SSL support for macOS, Linux and Windows.

A tool designed to provide a visualization of what is going on in our physics middleware (PhysX), allowing you to quickly inspect the Collider geometry in your Scene, and profile common physics-based scenarios.

Also serves as a profiling tool, because it can hide all sleeping Rigidbody components and show all concave Mesh Colliders.

UI: Added new AdditionalShaderProperties to the Canvas. This changes the default behavior for all new Canvas components that are created. The old default was to include Position, Color, UV0, UV1, Normal and Tangents whereas the new default is to only include Position, Color, and UV0 shader channels. This reduces the memory cost of rendering the canvas as additional unused channels are not included. If you need the other channels they are selectable per canvas and its recommend to use a minimal set of channels. This also adds the ability to use UV2 and UV3 shader channels if required.

Editor: Building in linear color space is no longer allowed for platforms that don't support it.

Graphics: Refactored camera render ordering code. When a Scene is rendered, it now figures out which cameras can share the same render target. The rules for this are:

Cameras must use the same display to share the same render target.

Cameras must share the same viewport.

All cameras must have a depth buffer, or none of them must have a depth buffer.

If the Scene is being viewed in VR, the cameras implicitly share the same render target.

These cameras are then split into a stack, which is rendered into a shared Texture based on depth ordering. This Texture has the most common settings found in the cameras in the stack. The following rules also apply:

If any camera wants MSAA, the Texture is an MSAA buffer.

If any camera wants HDR, the Texture is an HDR buffer.

If there are any deferred cameras in the stack, MSAA is disabled (MSAA is not compatible with deferred cameras).

Graphics: Removed MSAA from back buffer on most platforms. On iOS and Android, MSAA BB is still allowed. This is because these platforms have a large number of games with no Image Effects, and allowing MSAA BB helps to avoid extra blit.
MSAA now requires a Render Texture. This is implicitly supported via the render stack mechanism. If you need MSAA, the target that is rendered to has MSAA enabled (as long as deferred rendering is not used in the stack).

OSX: For stability reasons, disabled Metal on macOS 10.12.2 and 10.12.3, if GLCore is also present in the API list.

Scripting: Changed namespace UnityEngine.Runtime.Networking.PlayerConnection to UnityEngine.Networking.PlayerConnection for clarity and consistency with Unity convention

Scripting: Script serialization errors that were introduced in Unity 5.4 but did not always throw a managed exception, now always throw a managed exception in Unity 5.6.

Scripting: The behaviour for ISerializationCallbackReceiver.OnBeforeSerialize and ISerializationCallbackReceiver.OnAfterDeserialize has changed when using Instantiate and UnityEditor.PrefabUtility.CreatePrefab. Now ISerializationCallbackReceiver.OnBeforeSerialize is called once on the original object and and ISerializationCallbackReceiver.OnAfterDeserialize is called once on the cloned object after all internal references have been updated.

In order to use these matrices, use UNITY_MATRIX_MVP, UNITY_MATRIX_MV, UNITY_MATRIX_T_MV and UNITY_MATRIX_IT_MV instead.

For better performance, always use UnityObjectToClipPos and UnityObjectToViewPos if you are transforming vertices into clip space and view space, respectively. Unity prints a warning message if it detects you using UNITY_MATRIX_MVP and UNITY_MATRIX_MV.

Now that the transforming path has been unified, #pragma force_concat_matrices is obsolete.

Tests show an improvement in CPU performance and a degradation in GPU performance. The difference, however, is only noticeable when vertex load is very high.

Shaders: Shader compilation now stops on the first error.

VR: Updated iOS to Google VR NDK 1.2.

Windows: Windows 10 SDK is now the default SDK when building to Windows Store.

Windows: Windows Store: Windows 8.1 and Windows Phone 8.1 will be dropped after Unity 5.6. Unity 5.6 is therefore the last Unity release supporting these SDKs.

Windows Store: D3D is now the default build type when building for Universal 10 SDK.

Improvements

2D: Axis Distance Sort: Added CustomAxis to TransparencySortMode of the Camera, to allow you to sort renderers
against a preferred axis instead of just by depth from the Camera.

2D: The internal storage of Sprite data has been refactored to a more flexible storage structure. This is the precursor to upcoming 2D features. Textures will be re-imported when you open an existing project in Unity 5.6 for the first time.

Android: Added support for managed stack traces on Android with IL2CPP.

Compute: Added ability to set up & dispatch compute shaders from CommandBuffers. See new CommandBuffer functions: SetCompute*Param, DispatchCompute, CopyCounterValue.

Compute: The ComputeShader Inspector now lists kernels, and compiled code shows disassembly on DirectX 11. The UNITY_VERSION macro is passed while compiling compute shaders, just like for regular shaders.

DX12: Reduced system and video memory usage.

Editor: Added interface support to Selection.GetFiltered.

Editor: Added -disable-assembly-updater to disable the Assembly Updater. This is useful for when building managed dlls outside of Unity and copying them into Assets. Avoids the Assembly Updater spending time analyzing the assemblies every time they are updated

Editor: Graphics device arguments now persist when you relaunch the Unity Editor.

Editor: Improved the performance of the Hierarchy view in the Profiler Window.

Editor: The Unity Editor's Game view window fully supports touch input on Windows when touch screen is available (for example, on a Surface Pro). Functions like Input.GetTouch should therefore start working.

GI: Added rgb9e5 float Texture format for precomputed realtime GI on all supported platforms. This format can be interpolated without artifacts. Unsupported platforms fall back to RGBM encoding, and can still have banding from interpolation.

GI: The Enlighten solve type is now set to match the current lightmaps mode instead of always solving directional lightmaps. This is an optimization for Realtime GI with non-directional mode.

GI: Updated default shadow near plane offset.

GI: Upgraded Enlighten SDK to version 3.07p1. This should provide precompute time reductions, which is especially noticeable in the CalculateSystemDependencies step, as well as other steps which perform raytracing. Additional details:

An issue has been fixed in baking when using Final Gather, which would result in wrong lighting when using transparent materials.

An issue has been fixed in baking when using Final Gather, which would result in it ignoring the Backface behaviour type Material property.

Fixed issue that prevented baked light masks working in conjunction with transparency Textures.

Fixed a bug resulting in wrong lighting for SSD objects when using probes with non-default axes or SH coefficient orders.

When baking direct probe lighting, the per-light option to disable direct lighting is no longer ignored.

The Shader properties tab is now the default (instead of Mesh preview).

The Shader properties window now shows the ComputeBuffer properties that are used.

Graphics: Frame Debugger now gives you a reason when a draw call can't be batched with the previous one.

Graphics: GPU Instancing: a new workflow has been implemented. An Enable Instancing checkbox has been added to most of the Materials, including those using Standard Shaders.

A "#pragma multi_compile_instancing" line is no longer needed in Surface Shaders. Instancing variants are automatically generated for Surface Shaders, unless you explicitly specify noinstancing in a #pragma surface line.

Standard and StandardSpecular also have "#pragma multi_compile_instancing" built-in.

A new checkbox Enable Instancing has been added to the Material Inspector. This must be checked for objects rendered with this Material to be instanced.

SpeedTree Assets now print an error prompting you to regenerate the Materials when you enable the Enable Instancing checkbox.

When building to players, instancing variants of a Shader are stripped away if no Material using this Shader enables instancing. A new property, Global stripping control has been added to Graphics Settings.
Note that all existing projects that use instancing need to enable the Enable Instancing checkbox if the Material is intended to be used for instancing, including those for DrawMeshInstanced.

Graphics: HDR rendering supports R11G11B10 float formats in addition to FP16. This can be configured in Graphics Settings (Edit > Project Settings > Graphics) per platform and per tier.

Graphics: The -gpu command line argument is now supported in the Windows Store player

Particles: The UI for Custom Vertex Streams has been redesigned to allow greater flexibility over what data to send to the shader, and to add more control over how it is packed into the TEXCOORD channels.

Particles: You can now configure Custom Data via the Inspector using a new Module, instead of exclusively via script.

Physics: 2D contacts are now shown in the Inspector 'Info' rollout for Collider2D and Rigidbody2D.

Physics: A warning is now issued when attempting to use CompositeCollider2D.SetEnabled as this isn't supported.

Physics: Added a non-allocating way to retrieve contacts per Collider2D or Rigidbody2D using Physics2D.GetContacts (), Collider2D.GetContacts () and Rigidbody2D.GetContacts ().

Web: In UnityWebRequest, response code and headers are now available to scripts as soon as they are downloaded. Previously, they were only accesible after the whole download was complete.

Windows: The Unity installer now offers to install Visual Studio Community 2017 (instead of Visual Studio Community 2015).

Windows Store: C++ source code plugins can now be included directly from the generated Visual Studio solution. This is possible by adding the directory containing the source code to the list of include directories, and linking the DLL they get compiled in to the final game executable on the il2cpp scripting backend.

API Changes

Animation: Added GetKeyLeftTangentMode, GetKeyRightTangentMode and GetKeyBroken to the AnimationUtility API.

Animation: Deprecated AnimatorOverrideController.clips. (752095)

Animation: Moved AvatarMask from UnityEditor.Animations to UnityEngine.

Asset Import: Added keepQuads property to ModelImporter.

Asset Import: Added RecalculateTangents function to Mesh.

Asset Import: Added weldVertices property to ModelImporter.

Asset Pipeline: Added new API methods AssetDatabase.GetImplicitAssetBundleName and AssetDatabase.GetImplicitAssetBundleVariantName, which dynamically compute the name of the AssetBundle and AssetBundle Variant that a given Asset belongs to.(834008)

Audio: (As also mentioned under Improvements) AudioClip is now always loaded on a separate thread, resulting in improvements to Scene loading time. This is because the rest of the Scene can be loaded while Audio Clips are decompressed. AudioClip.loadInBackground is now obsolete and no longer used.

Build Pipeline: Changed Application.bundleIdentifier to Application.identifier and PlayerSettings.bundleIdentifier to PlayerSettings.applicationIdentifier. These now apply to the active target only. Use PlayerSettings.SetApplicationIdentifier to set it for any platform.

Physics: Exposed Physics.ClosestPoint. This computes the point on the surface of a given Collider that is closest to a specified location.

Physics: Exposed Physics.ComputePenetration. This computes the minimal translation required to separate the two given
Colliders. It doesn't require the Colliders to be placed at the given pose prior to the test, so it is useful for writing custom
character controllers.

SceneManager: EditorSceneManager now has a number of new events that developers can add delegates to. They are: newSceneCreated, sceneOpening, sceneOpened, sceneClosing, sceneClosed, sceneSaving and sceneSaved.

Scripting: (Also mentioned under Improvements) Added Transform.SetPositionAndRotation, as a more performant alternative to using Transform.position and Transform.rotation separately.

Scripting: Added new non-allocating accessors to Mesh. These accessors write into a user-specified List<T>. The new accessors are GetBindposes, GetBoneWeights, GetColors, GetIndices, GetNormals, GetTangents, GetTriangles, and GetVertices (also being back-ported to 5.5.x).

Terrain: Added TerrainChangedFlags for use in 'OnTerrainChanged' message.

Terrain: Added TerrainData.bounds for retrieving local bounding box of the Terrain heightmap data.

Fixes

2D: Removed error message that would appear when canceling the creation of a sprite animation, when sprites are dropped to the scene. The behaviour is now also consistent with dragging multiple sprites to the HierarchyWindow. (881910)

AI: NavMesh is now merged correctly when scenes are merged using the SceneManager API. (800869)

Build Pipeline: Fixed an issue which caused editor to think the build succeeded and open explorer window to the output build location when it fails due to a managed exception thrown in the build process (843528)

Build Pipeline: VR Splash Screen texture will no longer be included when building a project for a non-VR platform. (823167)

Editor: Arguments into MakeBezierPoints are now validated. Previously invalid arguments could result in a crash. (835775)

Known Issues

2D: It is highly recommended that dynamic batching be enabled when using sprites, in order to obtain the best sprite rendering performance. Notes:

Dynamic batching is enabled by default for new 2D projects.

Currently dynamic batching is not performed either if the option is unchecked, or if using graphics jobs.

The need to explicitly enable it to obtain optimal rendering performance for sprites will be removed in a patch release soon.

Android: When MuteOtherAudioSources option is disabled and there's no READ_PHONE_STATE permission, the Unity application running on Android 5.1 or older devices might not mute itself during an incoming phone call. This might cause rejections when submitting to Samsung app store.

Editor: Asserts spam in console when using Perforce. Will be fixed in a patch soon. (895453)

Editor: Crash when building a project targeting a platform for which support isn’t installed/enabled. Will be fixed in a patch soon. (868894)

Physics: RigidBody.collisionDetectionMode cannot be set during runtime if it is initially set to one of the continuous options. (784529)

UI: Adding UI elements via script causes OnDisable and OnEnable to be called on all scripts in the hierarchy if a RectTransform needs to be added. Workaround is to add a RectTransform component in the new GameObject call, for example: new GameObject("Canvas", typeof(RectTransform));. (882791)

VR: Image effects need to be updated to work with Single-Pass stereo rendering on Anrdoid.

VR: Mirror mode is incompatible with Single-Pass stereo rendering.

VR: RenderViewportScale currently causes performance issues and should be avoided. The Valve renderer is broken until this is fixed. This will be addressed in a patch soon.

VR: Single-pass stereo rendering has graphic corruption on Snapdragon devices when MSAA is used. This appears to be caused by a driver issue so we expect it to be addressed by a driver update, independent of Unity releases.

VR: With this release we have updated the Google VR NDK for iOS to version 1.20. This change is not backward compatible with the 1.1 integration and will require that you replace or re-create your iOS Cardboard project if you were using the earlier native integration. You can do this by simply backing up your current project, selecting "Build" or "Build & Run" and generating the project into a new folder or selecting "Replace" to replace the current generated project. (885513)

VR: [Daydream] There is no native controller integration yet. For controller use, please use the Unity SDK provided by Google.

VR: [Daydream] You may notice that your Daydream VR display is dimmer than other VR devices. This is by design, as a means of prolonging battery life while in VR.