Unity 2017.2

Additional 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.

GI: Added support for double-sided materials in Progressive Lightmapper. Added a new Material setting that causes lighting to interact with backfaces. When enabled, both sides of the geometry get accounted for when calculating Global Illumination. Backfaces do not count as invalid when seen from other GameObjects. Backface rendering is not controlled by this setting, and backfaces are not represented in the lightmaps. Backfaces bounce light using the same emission and albedo as frontfaces.

GI: Added support for per-object casting and receiving shadows in the Progressive Lightmapper. For "Cast Shadows", only the "On" and "Off" options are currently supported.

Graphics: Implemented Display-P3 color gamut support for iOS and macOS. Added "Color Gamut" property to Player Settings, which will eventually cover other platforms with wide color gamut support.

Multiplayer: Added new QoS options for delivery of large messages: reliable or unreliable, and un-ordered (fragmented) or ordered (fragmented sequenced).

OSX: Added support for Retina in macOS standalone builds.

Package Manager: Exposed the API for enabling internal components to be updated more frequently than the Editor. This is the first step in implementing the Unity Package Manager. We are taking an incremental approach to integrate the system into the Unity ecosystem. It will grow with more features over time. For this first release, we have avoided exposing user-facing features.

Particles: Added "Stop Action" option to allow Particle Systems to be destroyed or disabled when they finish playing.

Particles: Added Linear Drag support for Particles. The new options are in the Limit Velocity over Lifetime Module.

XR: Added openVR support for Mac 64bit application target that use Metal graphics.

XR: Added support for certain aspects of the Vive HMD to be simulated in-Editor without the need of a physical HMD. To enable this, use the "Mock HMD - Vive" virtual reality SDK in the Player Settings. The mock HMD uses the same asymmetric projection matrix, hidden occlusion mesh, field of view, aspect ratio, and eye texture size as the Vive. You can use mock HMD with both multi and single pass rendering paths. It renders as a split-screen stereo display in the Editor.

XR: Added support for Video Async Reprojection for Daydream View. Video Async Reprojection allows an app to feed video frames directly into the Google VR Async Reprojection system without going through the main Unity render loop. This provides a fast path to direct rendering of video, regardless of the current frame rate Unity is rendering at and skips Texture filtering, providing for a much higher quality output. There is also an option to allow for the use of protected memory, for users that need to render DRM-protected content.

XR: Added support for Windows Mixed Reality as a Virtual Reality SDK target. This extends Unity's HoloLens support so that it more generally supports Windows Mixed Reality, both for desktop and HoloLens.

XR: Added the TrackedPoseDriver component, which can be added to a game object to match the position and rotation of a AR device, VR HMD, or VR controller.

XR: Stereo Instancing (also known as single-pass instanced) is now supported on desktops when the DirectX 11 (DX11) rendering API is in use. Stereo Instancing is only supported with forward rendering.

XR: Unity Editor has foundation support for EditorVR. Look for a future announcement around availability of a 2017.2 compatible EditorVR version.

XR: Windows Mixed Reality headsets are now supported for playing in-Editor.

XR: Introduced native integration for the Vuforia Augmented Reality Platform. Vuforia support can be installed through the Unity Download Assistant and enabled under PlayerSettings/XR. For more information about Vuforia see https://developer.vuforia.com.

Backwards Compatibility Breaking Changes

Scripting: UnityEngine.dll is now split into separate dlls for each UnityEngine module.

Changed behaviour so that ducking amount corresponds to the maximum level on each channel.

Editor: APIUpdater no longer runs automatically when Editor runs in batch mode. See -accept-apiupdate command argument for more information.

Editor: Changed the behaviour of the "members" button in the Collab toolbar. It now opens a page in the web Dashboard to add/remove project members.

Editor: Editor GUI tooltips are no longer suspended if the Scene is paused in Play mode.

Editor: Reduced the verbosity in Editor log for script recompilation.

Editor: The 2017 Unity Editor requires a new license version. Subscription keys will be upgraded, but 5.x license keys are not accepted by the 2017 Editor. If you have only a 5.x license, please visit https://store.unity.com/ or contact your sales representative to obtain a 2017-compatible license.

Graphics: When using custom shadow resolution on a light, the resolution is no longer clamped, so it can reach up to 8k shadowmap if needed.

Animation: Added ability to copy and paste transition parameters in Animator State Machine.

Animation: Added option to Animator States to pull normalized time from a specified Parameter rather than using Time.deltaTime.

Asset Import: Exposed a public API for extracting embedded textures from .FBX and SketchUp files. The materials which are embedded in the Asset will be updated automatically to reference the extracted Textures.

Asset Import: Made minor improvements to the Avatar Mask and Transform Mask UI.

Audio: Added ability to get and set the audio spatializer from script via AudioSettings.GetSpatializerPluginName and AudioSettings.SetSpatializerPluginName.

DX12: Native Rendering Plugin improvements:

Exposed/implemented native RenderBuffer resource retreival.

Fixed multithreading issues.

Editor: Added toggle for color-blind-friendly mode to the context menu in the upper-right corner of the Profiler window.

Editor: Exposed LZ4 compression settings to the Build Player window for iOS, Android, and Standalone platforms.

Editor: Made usability refinements to Profiler charts:

You can now toggle all series types

Stacked chart series now have explicit reorderable affordances

Stacked plots now appear as solid colors

Editor: Unity Troubleshooter allows users to observe a list of previously reported issues and search for similar issues in Unity Knowledge base

GI: Added A-Trous, a new edge-aware filter for GI when using the Progressive Lightmapper.

GI: Added asynchronous loading of precomputed realtime GI data, by moving the GI part of file I/O into the loading thread. Exposed DynamicGI.IsConverged to public API so you can see when lighting is converging. Added timesliced albedo-emission rendering during load. (710503, 790887, 815033)

GI: Added support for LOD baking in Progressive Lightmapper.

GI: Added update to fill the empty areas in the lightmaps with content from the lower mip levels (push-pull dilation). This fixes visible dark pixels around geometry edges when rendering with lightmaps. The happens due to dark background texels bleeding in when lower MIPs are accessed.

Graphics: Texture Importer: Added support for BC5 compression format when the Texture Type is set to to Normal map. Enable the platform-specific override panel at the bottom of the Texture Importer to set the Format to BC5.

iOS: Generated Notification and Spotlight icons for iOS targets. Additionally, modified the functions PlayerSettings.GetIconsForTargetGroup, PlayerSettings.GetIconSizesForTargetGroup and PlayerSettings.SetIconsForTargetGroup to take an optional IconKind parameter to get/set specific kinds of icons. (894113)

iOS: Implemented Xcode API for embedding frameworks.

iOS: Improved render thread scheduling for Metal.

iOS: Multithreaded rendering option is now available for iOS/tvOS.

Kernel: Added completion events to all return AsyncOperations.

Launcher: Integrated Social Sign-On into the Launcher window.

Particles: Added a Restart button to the Scene View overlay.

Particles: Added the "Inherit Lifetime" option to the Particle System Sub-Emitter module.

Particles: Burst Emission now supports curve modes for the count.

Particles: Custom Module labels are now editable, allowing you to give them contextual names.

Physics: 3D Physics changes caused by modifying the Transform can now be deferred. They automatically synchronise before the physics simulation runs. You can use Physics3D.autoSyncTransforms and Physic3D.SyncTransforms() to control this behaviour.

Shaders: Improved import time of surface shaders with many similar shader_feature/multi_compile variants.

Substance: Added support for V6 engine; Ability to use all the nodes of Substance Designer.

UI: Introduced a shader keyword to all of the UI shaders, which controls the rect clipping. Rect clipping now only occurs when the Mask component is enabled. This leads to much better UI performance when Masks are not used. (784238)

Web: UnityWebRequest now has DownloadHandlerFile available for downloading files and saving them to disk with a low memory footprint.

Windows: Improved the crash dialog in the Windows Player; it now has more detail, and prompts the user to open an Explorer window for the crash report.

Windows: Split the player executable into two parts: a signed UnityPlayer.dll that has all the engine code, and a wrapper executable that calls into this DLL at startup. The source code for the executable is in Editor\Data\WindowsStandaloneSupport\Source\WindowsPlayer. You can rebuild it with VS2015 as long as you have "Common Tools for Visual C++ 2015" and "Windows XP Support for C++" installed.

XR: Improved rendering performance of Daydream and Gear VR apps.

XR: Made improvements to pause handling in XR applications. Apps which need to pause when the HMD is removed no longer resume if the window focus changes, and vice-versa.

XR: On VR HMDs for WindowsMR, you can now call SetTrackingSpaceType with TrackingSpaceType.RoomScale to set the floor at y = 0.

XR: Updated interfaces and new data for GestureRecognizer and InteractionManager (UnityEngine.VR.WSA.Input). Some of the API surface for this has breaking changes on the way and will land soon.

XR: UnityEngine.Experimental.VR.Boundary.TryGetGeometry now works on Windows Mixed Reality headsets.

IMGUI: Added GUI.Toolbar/GUILayout.Toolbar method with new GUI.ToolbarButtonSize enum parameter to support Fixed and FitToContents modes for button contents.

IMGUI: Updated GUI.SetNextControlName() so that it now works for controls with any FocusType.

iOS: Modified the functions PlayerSettings.GetIconsForTargetGroup, PlayerSettings.GetIconSizesForTargetGroup and PlayerSettings.SetIconsForTargetGroup to take an optional IconKind parameter to get/set specific kinds of icons. (894113)

Scripting: UnityEngine.dll is now split into separate dlls for each UnityEngine module.

Services: Added support for user-defined purchasing payouts attached to ProductDefinitions.

Terrain: Added Terrain.freeUnusedRenderingResources API. You can use this to turn off a "garbage collection" mechanism within the Terrain system to prevent a potential performance hiccup. See the API documentation for details. (743462)

Editor: Fixed crash in GUIView::OnInputEvent() when closing a floating window and using the -debugallocator flag. (905960)

Editor: Fixed crash seen on Windows, when opting to keep a temporary project (e.g. one opened from the 'Learn' tab on the launcher) on Editor. This was caused by the directory being in use by another application. (917556)

Editor: Fixed crash when closing a window if it hasn't finished loading. (916113)

Package Manager: Give the option for the user to continue loading the project even though package resolution failed (no internet or wrong manifest). No packages will be loaded and a sticky error message will be displayed. (945057)

Particles: Added more reasons to the Frame Deubgger for why a dynamic batch may be broken. (911933)

Physics: Ensure no work is done if the 2D physics world is empty. (940666)

have only one (main) monitor and run MonoDevelop
This will be fixed in a patch release soon. (955089)

Package Manager: When opening a project, Unity may try to alter the contents of package meta files. This can happen when opening the same project with multiple versions of Unity. Since the package cache folder is read-only, this results in an access denied error during Unity startup. Clicking 'Cancel' will allow you to continue to open the project, and the error will not appear on subsequent project loads. This will be fixed in a patch release soon. (957025)

Services: CollabSnapshot logs "Save to file" even when Collab is disabled. This causes the Mac Editor to take two minutes to exit Play mode. (931990)

XR: Daydream controller may stop working after Unity project suspend/resume if the project uses the Google VR SDK for Unity controller support. (944770)

XR: In single-pass stero rendering, the Occlusion Mesh is visible when rendering to an RT Camera. (936114)

XR: The editor will show an incorrect ""Unsupported texture format: ..." error in the editor when XR is enabled. (956693)

XR: [VR Oculus Compositor Splash] Particle System does not work on Build when VR is enabled. This will be addressed in a patch soon after release. (926695)

XR: XR applications will throw callback unregistration asserts if the VR device is changed at runtime. These callbacks relate to analytics (for the VR device) however, so your application will experience no issues.

2017.2.0f3 Release Notes (diff since 2017.2.0f2)

Changes

Package Manager: Moved the location of the project packages manifest from /UnityPackageManager/Project to /UnityPackageManager.