Unity 5.2

Unity 5.2 is here! It comes with the Services Window for easy SDK-free access to Unity Ads, Unity Analytics, Unity Cloud Build and Unity Multiplayer. There are three new deployment options: Project Morpheus, Windows 10, and Universal Windows Platform as well as a ton of bug fixes.

Plus, for Windows users, there's a much tighter Visual Studio integration and the option to download Visual Studio Community 2015 along with Visual Studio Tools for Unity (the tools formerly known as UnityVS) in the Unity installer. Read on!

Update now

New to Unity? Get it now!

Release notes

Upgrade Guide

Known issues

We are doing something new by giving more prominence to known issues and the upcoming patch release in which we expect to fix them. So, while the known issue list might look a bit longer, we're doing this to provide transparency and to increase the amount of information you get about our development process.

  • 2D: Sprite pivot values currently clamped to 0..1, will be extended to larger values in 5.2.0p1
  • Connect: 'Go to Dashboard' link for Multiplayer leads to Cloud Build
  • Editor: Crash when using injecting proxies (e.g. Lavasoft's webcompanion, Astrill, Qustodio) 713828
  • Editor: Incorrectly reports native plugin collision, even if only one native plugin exists
  • Game input in the Mac Editor may not work after opening a new project. This happens after getting a dialog saying “Moving File Failed”. To work around this issue, close and open the editor. The fix will be in 5.2.0p1 705555
  • Mac: Input system such as mouse click events or key press events stop working when multiple projects are opened. The fix will be in 5.2.0p1 716221
  • Layout elements under a ScrollRect component may not work properly. As a workaround a setup can be used where the Content is not a direct child of the ScrollRect but has an intermediary View object in between (the default setup from 5.2 onwards). The fix will be in a patch release
  • Editor: Scene view picking in linear color space does not work for DX11 when MSAA is used (quality: fantastic). Workaround: Use gamma color space, turn off MSAA or switch to DX9. This will be fixed in 5.2.0p1
  • Version Control: Perforce "Moving file failed" message appears when close project, fixed in 5.2.0p1
  • Windows Phone: Solution build fails when product name has non-alphanumeric characters
  • Windows Phone 10: Virtual keyboard doesn't work for UWP apps, will be fixed in 5.2.0p1
  • Windows Store Apps: audio is buggy on Windows 10, will be fixed in 5.2.0p1
  • Universal Windows Platform: Unity C# option doesn't work correctly for Windows 10 Universal apps, will be fixed in 5.2.0p1
  • Windows Store Apps: webcam is crashing on Windows 10, will be fixed in 5.2.0p1
  • VR / Oculus Windows: Linear lighting and MSAA crashes. Must use gamma, no MSAA until 5.2.0p1
  • VR / Oculus Windows: HMD not rendering after reconnect on Win10 with runtime 0.7
  • VR / Oculus Mac: No image to HMD. No workaround until 5.2.0p1
  • VR / Gear VR: Crash with OpenGL ES 2.0. Must use OpenGL ES 3.0 until 5.2.0p1
  • Tizen: Applications currently crash on launch. Will be fixed in a patch-release
  • Tizen: Applications will be rejected by the Tizen Store. Will be fixed in a patch-release

Features

  • 2D: Ability to rotate sprites while Sprite Packing to save atlas space description
  • Android: Experimental support for IL2CPP scripting backend
  • Android: Audio - Enable OpenSL fast path for devices that support FEATURE_AUDIO_LOW_LATENCY
  • Android: ETC1 Compression for Sprite Atlases. The texture is split into two RGB parts (second part containing alpha information as a grayscale) and combined in the shader. The option can be set on a per texture level, which affects the final atlas the texture lands in
  • Audio: Ability to set custom rolloff curves for an AudioSource at runtime via script. The following curves will be able to be set at runtime: Volume Rolloff, Spatial Blend (2D / 3D), Reverb Zone Mix, Spread, LowPass Filter Cutoff Frequency
  • Audio: Spatialization API for audio plugins, see (SDK and example)[https://bitbucket.org/Unity-Technologies/nativeaudioplugins]

description description

  • Cloud Services: Access control list support
  • Core: Application.UnloadLevel. Unloading scenes is now possible while the game is running. References to lightmaps are cleared but you have to call Resources.UnloadUnusedAssets() to actually unload them. Enlighten data is unloaded immediately. This feature is especially useful in conjunction with Lightmapping.BakeMultipleLevels()
  • Graphics: Added CullingGroup API, which allows you to specify a large set of bounding spheres that are integrated into the culling pipeline and subjected to frustum and occlusion culling
  • Graphics: Added option in player settings for configurable vertex compression. Default values: position and UV1 is uncompressed, the rest of the channels are compressed description

  • Mecanim: Playable API. Supports creating Animation blending graphs at runtime, providing the capacity to have full control over the AnimationClips and AnimationControllers played by the engine.

  • Mecanim: 3ds Max Auto Mapping and T-Pose. When setting an Avatar Animation Type to Humanoid, the Auto-Configure will try to detect if it is a Biped. If the hierarchy and naming of Biped is found, then default mapping and t-pose for biped will be used. Translation DoF will also be automatically activated for that avatar. The avatar can still be re-configured from this point, but usually default Biped mapping, t-pose and translation DoF will give the best results. Note that only Bipeds with no “Triangle Pelvis” and using default naming are supported
  • Mecanim: Translation DoF for Humanoid. Some animation files come with translation animation on humanoid bones. For example, it is the case with 3ds Max Biped that comes with translation on 1st Spine bone. Translation DoF can be activated on those humanoid avatar to convert translation animation to retargetable translation DoFs. Translation DoF affects Spine, Shoulders, Upper Legs and Neck bones. Translation DoFs usually represent small amount of translation that improves retargeting quality. Translation DoF may also be used to improve retargeting quality when animation has more than two animated spine bones. Translation DoF can be activated in Muscle & Setting tab of Humanoid configure window description

  • Multi Scene Lighting baking. Lightmapping.BakeMultipleScenes lets you bake lightmaps, reflection probes and realtime lightmaps for multiple scenes together, which can be loaded additively. Data is automatically split on bake per scene

  • Plugins: Expanded low-level graphics plugin API
  • Out of the box support for VisualStudio Tools for Unity (aka UnityVS)
  • Performance: CPU side rendering performance optimizations across the board. We've seen between 5% and 30% lower CPU cost for rendering, depending on the setup. Sorting of the renderable objects is now multithreaded too

description

  • Performance: Improved performance of LoadAssetAsync. Allow multiple AsyncOperations to be completed in a single frame
  • Performance: Particle rendering optimizations (especially for VR), with speed improvements varying from 15% to 50% depending on geometry type
  • Performance: Rendering on Linux uses the same main+render thread setup as on other platforms
  • Performance: UI now uses multithreaded batching & geometry generation backend. This leads to a performance increase of up 4x in our stress test scenes
  • Physics: Added parameter QueryTriggerInteraction to all physics queries (raycast, spherecast, overlap) to allow any query to override whether or not the query should hit Triggers
  • Physics: Expose CharacterController.skinWidth parameter to scripts
  • Physics: Expose impulse applied at contact (see Collision.impulse)
  • Physics: Support scaling of vehicles
  • Shaders: Fixed Function shaders work on all platforms now (including consoles). They are always generated at shader import time (a button "show generated code" in shader inspector shows the code); removed all runtime support. All rendering got slightly faster (even when not using fixed function shaders); and executable sizes got slightly smaller. MaterialPropertyBlocks work with them now (which means Sprites and animated materials work too). Behave more consistently across platforms (specular highlights and light attenuation was slightly different before). Fixed function shaders aren't rasterized at a half-pixel shift on WP8 anymore. However, can not create fixed function shaders using "new Material(string)" at runtime anymore; see Changes section
  • UI: 2D Rect Mask. A mask for 2D UI elements. Performs faster than the previous stencil buffer mask and does not require additional draw calls to prime the stencil buffer. When an element is outside the bounds of the mask the canvas renderer is also culled which leads to faster batching performance
  • UI: Dropdown control. The Dropdown can be used to let the user choose a single option from a list of options. description

  • UI: New Scroll View menu item and improved support in ScrollRect component for scrollbars.

  • Unity Ads: Enable and configure Ads from the Unity Connect window in the Editor
  • WebGL: allow .jspre files to be added to the project to be prefixed to the generated JavaScript
  • WebGL: Experimental support for WebGL 2.0 (not yet supported in any released browser)
  • Windows Store Apps: Universal Windows Platform app (Windows 10) support

Changes

  • Blackberry: Discontinued Blackberry player support
  • Editor: Asset Store window is now a part of the default window layout. Docked behind the scene & game views
  • Editor: Remove legacy Mac OS X corner window resize behaviour
  • GI: Set default BounceScale to 1
  • Graphics: Material.CopyPropertiesFromMaterial also copies shader keywords and render queue now
  • IL2CPP: Make engine stripping in iOS/WebGL a separate setting (PlayerSettings.stripEngineCode) from Mono stripping levels
  • Introduce EditorSettings.projectGenerationUserExtensions & EditorSettings.projectGenerationBuiltinExtensions
  • Particles: Particle geometry is generated in world space now (used to be in view space before). If you have custom particle shaders that relied on view space positions coming in, you will need to change them
  • Reflection Probes: Are rendered in a separate deferred pass when using deferred shading. See Improvements section entry for details
  • Scripting: Removed hexadecimal color string support from Color and replaced with ColorUtility
  • Shaders: Can not create fixed function shaders using "new Material(string)" anymore. Shaders must come from assets or be fully precompiled in the editor
  • Shaders: Changed UnityGlobalIllumination, Unity_GlossyEnvironment, FragmentGI function signatures. If you have custom shaders that uses Unity's PBR please check UnityGlobalIllumination.cginc, UnityStandardBRDF.cginc, UnityStandardCore.cginc respectively
  • Substance: The communication between Unity's MainThread and the Substance Thread was completely rewritten to better decouple Substance processing from Unity's regular operations and to avoid stalling the MainThread. All crashes and hangs at build time, level load/change time, playmode entry/exit should be gone
  • Terrain: Changed the default hotkey bindings for terrain tools to F1-F6
  • UI: CanvasRenderer can now take multiple Materials. Like a MeshRenderer each material refers to a SubMesh of the configured Mesh
  • UI: CanvasRenderer now takes a Mesh instead of List this allows for the use of imported meshs as part of the UI
  • UI: UI.Text now accounts for trailing white spaces when performing horizontal alignment
  • WebGL: Make release builds always fully optimized
  • Windows Store Apps: AppCallbacks.LoadGfxNativePlugin has been deprecated. All plugins that are in the project and set to build for a given platform are now loaded automatically. The function still exists and does nothing, but it will be removed in a future Unity version

Improvements

2D Improvements

  • Allow sprites to be dragged into scene view in 3d mode. Add temp GO while dragging for visual feedback similar to when dragging prefabs/model into scene view
  • Frame selected command (F) now works in the sprite editor window for the selected sprite rect
  • Implement undo functionality for sprite editor window's slice menu
  • New grid slicing method that uses column and row count
  • Pivot snapping on sprite frame rect in sprite editor window only happens when Ctrl is pressed while mouse dragging the pivot handle
  • Provide a custom pivot field in the slicing menu for the sprite editor window
  • Zooming on sprite editor window’s texture will zoom towards mouse cursor

Editor Improvements

  • Added RunOpenPanelWithFilters API
  • Better error message when "The classes in the module cannot be loaded" is thrown
  • Improved Compute Shader inspector; now lists errors & warnings similar to regular shader inspector
  • Improved Export Package window (now uses a proper tree view)
  • Improved shader inspector performance when there are many errors shown
  • Make sure ObjectField and Object Selector shows icons for game objects and prefabs
  • More "create new shader" templates under assets create menu (PBS surface shader, unlit shader, image effect shader)
  • Selection.selectionChange callback triggered when selection changes
  • Show proper cubemap preview instead of icon in large preview ObjectField
  • When in 2D mode, the camera bounds for the main camera is always visible when it is in orthographic mode

Graphics, Lightmapping and Shader Improvements

  • GI: Added progress bar for GI Cache -> Clean Cache progress status
  • GI: Allow ambient intensity higher than 1
  • GI: Size of the last lightmap is now reduced to pack the instances more tightly and not waste space
  • Graphics: Add SetUVs to Mesh API, it takes a UV channel, and a List of either Vector2, Vector3, or Vector4 as arguments
  • Graphics: Added a quality setting 'Shadow near plane offset' to allow working around shadow pancaking artifacts
  • Graphics: Added CommandBuffer.IssuePluginEvent to allow invoking native code plugin from a command buffer
  • Graphics: Added Cubemap.mipmapCount
  • Graphics: Implemented object naming for D3D11, so textures and meshes will pick up the correct name in external graphics debuggers (e.g. RenderDoc, NSight etc.)
  • Graphics: Memory saving for meshes with < 300 vertices if dynamic batching is off
  • Graphics: New GL.IssuePluginEvent override allows invoking a specific callback in a specific native plugin
  • Graphics: Windows Store Apps 8.1 and Windows Phone 8.1 now support MSAA
  • Image Effects: Added option to disable 'no fog on skybox pixels' behaviour in GlobalFog effect
  • OpenGL: Added -force-clamped argument that prevents use of all available extensions when used together with -force-glcoreXX or -force-glesXX
  • OpenGL: Added -force-gles editor and standalone player to automatically run with the best version of ES supported by the platform
  • Particles: Mesh particles now support the Texture Sheet Animation settings
  • Reflection Probes: when using Deferred Shading, the reflection probes are now rendered per-pixel (instead of each object only being affected by one or two probes)
  • Shaders: Added finalgbuffer and finalprepass modifiers. They work in the same way as finalcolor does, but are used by the deferred and prepass base paths respectively for altering what would be written into the gbuffer
  • Shaders: decal:add surface shaders now generate code for deferred and legacy deferred paths if finalgbuffer and finalprepass modifiers are specified
  • Shaders: Now #pragma skip_variants skips user variants as well
  • Shaders: Procedural Skybox shader now has selectable options for Sun Disk: None (fastest), Simple (should be close to the current sun disk), High Quality
  • Shaders: Make it possible to use UNITY_SAMPLE_SHADOW macros when SHADOWS_NATIVE keyword is not explicitly defined

Mecanim Improvements

  • Added a "destructive action" prompt when deleting blend tree nodes, so that the behaviour is consistent between StateMachine and BlendTree graphs
  • Added AnimatorStateInfo.speed and AnimatorStateInfo.speedMultiplier
  • Added the possibility to create AnyState Transitions to the entry node of a state machine. In a sub state machine, this is essentially the same as creating an AnyState Transition to a sub state machine from the parent state machine. This also adds a straightforward way to add an AnyState Transition to the top-level state machine, which was previously only possible through roundabout methods
  • Added tracking of missing or invalid StateMachineBehaviours in the StateMachine and State inspectors. Missing or Invalid StateMachineBehaviours shouldn't disappear anymore from the inspector
  • Adding a child blend tree will use the default blend tree parameter, not the blend parameter of the parent
  • Alt-drag works in BlendTree graph view now
  • BlendTree API publishes useAutomaticThresholds
  • Can create new clip from selected clip/take in Animation importer
  • Creating a blend tree in a controller with no float parameter will now automatically add a new float parameter named Blend
  • Expose Animator.IsInitialized in scripting API
  • Fixing empty State Machine Behaviour after compilation error
  • Import humanoid animation warnings have been cleaned and improved. A “Warning” summary box has been added at the top of Animation Inspector to prevent warnings to be left unnoticed. Warnings are reported per take when animation file contains multiple takes. Warnings have been added when in-between humanoid bones rotation differs in Source Avatar and Animation. Text has been reformatted so that is easier to consult the warning report
  • Improved default IK Hint for legs. Default IK Hint for knee now points towards foot direction. It gives a more natural IK solving for leg when IK correction needed gets bigger
  • Improved display of transition previewer
  • Improved Humanoid animation jitters (Humanoid Oversampling). For some animations, usually those with fast motion, the Humanoid interpolation may differ from original Euler rotation interpolation. In those rare cases, use animator.humanoidOversampling to increase sampling rate. ModelImporterHumanoidOversampling.X2 up to X8 can be used. Usually 2 will do the job! Default is X1 or no oversampling. Key reducing can be used conjointly to only keep Humanoid animation oversampled keys where it is needed while reducing asset size
  • Renaming Animator parameters updates transitions using those parameters
  • Retargeting quality for humanoid import animation. The retargeting quality compares original generic animation with humanoid retargeted animation. An average or maximum position error greater than 1.0 “normalized” mm will be reported. An average or maximum error greater than 0.5 degree will be reported. The time (and frame number) in full take of maximum errors is also reported. The position and rotation errors are reported per human body parts. The Retargeting Quality report can be turned on or off in Import Message foldout of Animation Inspector. It is off by default as it makes file import slower
  • SetBoneLocalRotation. Animator.SetBoneLocalRotation let you modify the local rotation of humanoid bone during IK passes/OnAnimatorIK() callback. It can be used to modify the pose of a humanoid avatar after Animation Blending, but that will still be taken in account by IK Solving. Ex: Adjust Hips and Spine rotation to drive lower and upper body independently on top of animation

Networking Improvements

  • Added OnLobbyServerPlayersReady callback to the NetworkLobbyManager to allow users to perform custom behaviour when all the players in the lobby are ready
  • Added support for client-side authority for non-player objects. The new function NetworkServer.SpawnWithClientAuthority allows authority to be assigned to a client by its connection when an object is created
  • Networking: Added support for network [Command] calls from non-player objects with authority on a client
  • Networking: Added the ability for the NetworkTransform to validate on the server, the movement of authoritative client objects. There are now clientMoveCallback delegates on the NetworkTransform that allow user code to process 2D and 3D movement updates from clients before they are applied
  • Networking: Added NetworkDiscovery component to network HLAPI. This exposes the network transport layer local discovery function to HLAPI code, and allows Unity games on a local network to find each other

Terrain Improvements

  • A warning message will be printed onto the console window if there are too many vertices in a detail patch. Increased the vertex limit to from 50k to 65k.
  • Deferred and legacy deferred rendering paths work again with Terrain
  • Made it easier to work with height maps created by World Machine. The default value of Byte Order option is now Windows (little endian). Added an option to vertically flip the height map when importing or exporting a raw file
  • Now 4097x4097 raw heightmap can be imported
  • Now a TerrainData object embedded into a scene (created by script) allows scene objects being selected as tree prefabs
  • SpeedTree: Negated tangent vectors to match those in the SpeedTree Modeler
  • SpeedTree: Now shader has less variants due to the merge of some geometry types
  • Trees painted on the terrain now are scaled by the prototype's transform scaling

Other Improvements

  • Android: ETC2 is now the default compressed texture format for RGBA textures instead of RGBA4444
  • Audio: Improved preview rendering of audio clips, especially for clips that are very short
  • Audio: Improved inspector of AudioMixer performance parameters
  • Audio: One-shot sounds now also contribute to the data read by AudioSource.GetAudioData/GetSpectrumData
  • C# Project Generation: included extensions and rootnamespace now configurable in ProjectSettings->EditorSettings
  • C# Project Generation: only one set of project files will be generated, based on what the preferred external editor is
  • Fonts: CharacterInfo properties are now writeable
  • iOS/IL2CPP: Enable generic sharing for types and methods whose generic parameters have constraints
  • iOS/IL2CPP: Enable MakeGenericType and MakeGenericMethod for types and methods whose generic parameters have constraints
  • iOS/IL2CPP: Improve conversion time of IL2CPP, especially in generics heavy code
  • iOS: Added build number to Player Settings
  • iOS: Added onBannerFailedToLoad delegate to iOS.AdBannerView
  • iOS: Added support of asset tags and folder references to the Xcode API
  • Linux: Enable experimental GL core profile mode (via -force-glcore and friends)
  • Physics: Now you can set negative WheelCollider.forceAppPointDistance. This allows to adjust forceAppPointDistance in order to have suspension and tire forces applied at the wheel base
  • Physics: Renamed 'CollisionDetectionMode2D.None' to 'CollisionDetectionMode2D.Discrete' (scripts will be auto-updated)
  • Scripting: Application.isShowingSplashScreen checks if Unity is currently showing a splash screen
  • Stacktrace logging: Allow to log full (native/managed) stack trace when log is printed, the option is available in the console window in top right corner popup menu. Also check Application.stackTraceLogType API. Works in Editor and Windows/OSX standalone players
  • Substance: "visibleIf" expressions set in Substance Designer are now properly evaluated (for inputs only) and inputs are now displayed or hidden accordingly
  • Substance: Dynamic parameter in Substance graphs are now evaluated using native code instead of bytecode on Windows / OSX / Linux, resulting in faster texture generation
  • Substance: Feature parity with Substance Designer 5.1
  • Substance: Runtime generation of procedural materials is now supported on PS4 and XboxOne consoles
  • TrueTypeFontImporter: References to other font assets to be used in the project as fallback are now shown in the TrueTypeFontImporter inspector
  • UI: Add callback to MaskableGraphic for when it becomes culled via the 2D culling API
  • UI: Added support for EventType.ExecuteCommand "SelectAll" to InputField so that it works in the Editor
  • UI: Added underloaded function call for RectTransformUntility.RectangleContainsScreenPoint so a camera is not required
  • UI: Make the default value for a slider / scrollbar be 0
  • UI: Remove (Pro Only) from UI shaders as they can be used on any version of Unity 5
  • Version Control: Bottom most version control info bar in inspector shows separate state for meta file if different from asset
  • Version Control: Icon overlays for version control is surrounded by parenthesis in case an asset and its meta file's state is out of sync
  • Version Control: Reduce unnecessary checkouts
  • WebGL/IL2CPP: Improved stripping resulting in smaller build sizes
  • WebGL: Resolution set in HTML file will no longer be overridden by PlayerSettings
  • Windows Store Apps/Phone 8.1/Universal Apps: Unity will generate projects in a consistent way with Visual Studio. For ex., When specifying project names with whitespaces or symbols like '-', '.', Unity will no longer strip those symbols when creating folders, note this might break existing projects if you're building on top of old directory and your project name contains one of these symbols
  • Windows Store Apps/Phone 8.1/Universal Apps: Unity will properly use project name instead of hardcoded "Template" word, when creating App.xaml, App.xaml.cs, MainPage.xaml, MainPage.xaml.cs, AssemblyInfo.cs files
  • Windows Store Apps: InvokeOnAppThread/InvokeOnUIThread now will not cause deadlock, when called with sync=true multiple times in one chain
  • Windows Store Apps: supported orientations are now populated to manifest
  • Windows Store/Phone will now show animated Unity splashscreen instead of the static one
  • XboxOne: Improved performance for certain audio operations: converting float to PCM16 formats, mixing audio for one speaker configuration to another, and linear resampling
  • XboxOne: Unity is now build using the June 2015 QFE 1 XDK. You will need to have this XDK installed on your PC and use the matching or a later recovery

Fixes

2D Fixes

  • After applying settings in sprite editor window, deselect any sprite rect.
  • Apply active color space onto texture in sprite editor.
  • Clear undos for SpriteEditorWindow when applying or window is closed. Also fix ClearUndo not working for ObjectUndo.
  • Do not trim sprite when Shift-T is pressed while entering name in Sprite Editor.
  • Ensure SpriteEditorWindow has the correct texture importer reference when texture importer inspector is applying changes
  • Fix NullReferenceException when creating a new sceneview
  • Fix pointer enter/exit detection order with sorting layers
  • Hide PerRendererData shader properties in inspector as property is retrieved from the renderer
  • Increase responsiveness of Sprite Editor in Mac OS X
  • Materials become transparent because of improper re-setting of material
  • Non-sprite textures will display in sprite editor window with no options
  • Quit 2D collider editing mode when user reset the collider component
  • Reimport texture if texture importer is reset
  • Remove a sprite rect if the selected sprite rect is empty when trimmed
  • Replaced assert with warning message to multiple materials in SpriteRenderer
  • Set correct zoom values for zoom bar in SpriteUtilityWindow
  • Set SpriteRenderer to dirty when color is set
  • Sprite Editor uses the actual image size for slicing operation. Force Sprite Editor preview to use mipmap if user machine does not support the image resolution
  • Sprite Packer no longer packs Truecolor sprites into the same Atlas if other format settings are different
  • Update sorting layer APIs and prevent setting invalid sorting layer ids to renderer
  • View tool (panning, rotating, zooming) in the scene view will not manipulate collider control point even in collider editing mode

Android Fixes

  • Android: Added API level 22 to the minSdk list
  • Android: Added support to create a real 16bit RGB565 backbuffer. Deprecated Handheld.use32BitDisplayBuffer
  • Android: Audio - Fixed issues on GearVR when the device does not report FEATURE_AUDIO_LOW_LATENCY
  • Android: Buildpipe - Android Libraries can now be excluded from build in the Plugin Inspector
  • Android: Buildpipe - Fixed assets folders in aar files
  • Android: Fixed ATC texture compression for RGBA textures
  • Android: Fixed bug that caused texture format RGBA4444 to be used for RGBA textures even when overriding in build settings
  • Android: Fixed crash affecting some PowerVR 544 devices
  • Android: Fixed performance regression in Resource.Load when calling it multiple times for the same resource
  • Android: JNI - fixed long data type
  • Android: Stripping - don't strip AssetBundle class or it removes LoadAssetAsync
  • Android: WWW - report HTTP status and response in case of failure

Editor Fixes

  • Animation Window: Animated particle properties are now show up in red in Inspector
  • Animation Window: Animated property values are now updated in Particle Editor when scrubbing in Animation Window
  • Animation Window: Animation curve now updates after changing controller
  • Animation Window: Ctrl+A now selects all keys and properties
  • Animation Window: Highlight is now blue when selecting all properties from animation window
  • Animation Window: It’s now possible to move current time before the first key
  • Animation Window: Replacing existing animation now actually replaces the asset instead of creating new one with unique name
  • Automatically checkout ProjectSettings/ProjectVersion.txt if needed
  • Avoid division by zero in zero-sized SphereCollider
  • Avoid locking when framing terrain
  • Camera lock keeps working when dragging outside the scene view window
  • Clear old main menus on Windows
  • Dirty materials when fixing HDR texture to ensure previews are updated
  • Ensure selected asset is revealed in project browser when changing layout
  • Fix asset store preview blinking in the project browser
  • Fix camera frustum gizmo not properly showing custom projection matrices
  • Fix CapsuleCollider gizmo handles are offset by a 90 degree angle
  • Fix caret not moving in ObjectSelector when using left/right arrow keys (only when no items were selected)
  • Fix crash when deleting an object from a prefab instance where the prefab asset is missing
  • Fix creating a script from the right click menu throws "Rename not started" error
  • Fix creating new assets after deletion of assets would throw error
  • Fix Cursor flickering in editor while play testing if cursor.visible = false
  • Fix Cursor.visible not working until the game view is focused
  • Fix disabled scrollbar in lighting window lightmaps tab
  • Fix error when renaming items in project and hierarchy views
  • Fix Hierarchy type searching so 't:script' or 't:monobehaviour' shows all game objects with scripts attached
  • Fix icons in Project Browser 'jumping' when changing view
  • Fix IMGUI brightness on GameView when in Linear color space
  • Fix memory thrashing when Dragging and Dropping between panels, when the dragged object had a CustomEditor with no Preview
  • Fix multi-object selection of reflection probe cubemap to not incorrectly set same cubemaps
  • Fix non character keys being mixed up with character keys on shortcuts
  • Fix not being able to focus tabs after changing "Output" on Audio Source
  • Fix occasional recycle bin bypassing when deleting assets on Windows
  • Fix popped out container window not able to move when two editor windows are stacked one above/next to the other
  • Fix possible data loss on Windows when renaming folder with locked files
  • Fix rare case of invalid folder path shown in the Project Browser
  • Fix scene view window still being tinted in playmode when an overlay was active
  • Fix scene's GI is not updated after building AssetBundle or opening the same scene
  • Fixed bug which caused the Move Tool, when used on an object with a negatively scaled parent, to snap to whole units
  • Fixed Gradient not updating when an Undo is performed
  • Fixed occasional exception thrown when creating an asset/folder under Assets folder in Project pane with One Column Layout
  • Fixed Scene View audio play toggle not returning to previous state after exiting Play Mode
  • Fixed Scene View camera moving slightly while holding down right mouse button
  • In play mode, tick one more frame after the editor is not active, so that the game can get a chance to respond to being paused
  • Make sure GUISkin.current is set to GameSkin before invoking any user script
  • Scene view picking works when selection base object isn't under the mouse position
  • Terrain editor hotkeys no longer conflict with text field input

Graphics, Lightmapping and Shader Fixes

  • GI: Ambient GI value not changing based on disabled realtime/baked GI
  • GI: Fix crash following lighting builds in GetSystemTexture
  • GI: Fixed bake getting stuck on some terrains
  • GI: Fixed crash in CreateSnapshotForReflectionProbe when trying to rebake reflection probes
  • GI: Fixed environment reflection cubemap getting unloaded after the scene was loaded using Application.LoadLevel for scenes that used the Auto lighting build mode
  • GI: Fixed lightmap shader variant stripping for realtime lightmaps. Now each lightmaps mode (non-directional, directional and directional specular) variant can be picked for baked and realtime GI separately. Please review your settings if you selected a specific lightmaps mode variant in the Graphics Settings to make that mode work for realtime lightmaps
  • GI: Fixed radiosity core corruption error when baking lightmap
  • GI: Fixed UV packing for baked UVs not filling the 0-1 space (smaller or bigger). Fixes a bunch of issues where one object with stray UVs could overlap other objects and cause dark spots. Also makes the resolution assigned to each object work much more reliably if that object's unwrap is not filling the 0-1 space and also when its bounds are non-square. Please review the resolution on your instances for baked lightmaps
  • GI: Lightmap snapshot gets cleared when clearing GI Cache
  • Graphics: Crunch texture compression support for 8192x8192 textures (64-bit editor builds only)
  • Graphics: Apply hard limit on font size of 500 in more places than just font importer
  • Graphics: Fix for asset bundle content changes between subsequent generations due to uninitialised vertex buffer
  • Graphics: Fix for call to OpenGL ES API without current context when using the multi-threaded renderer
  • Graphics: Fixed a shader compiler error on OpenGL ES platforms where dot() between a vec3 and a float would fail to add an upcast
  • Graphics: Fixed bug in ES 3 shader code generator that caused clipping problems in UI shaders
  • Graphics: Fixed crash while using -force-gles on Mac OS X
  • Graphics: Fixed editor rendering black views when running with OpenGL ES 2.0
  • Graphics: Fixed Halo errors when they are on DontDestroyOnLoad objects
  • Graphics: Fixed Halo texture not being centered, causing half-texel clipping on top/right sides
  • Graphics: Fixed issue with MaterialPropertyBlock not working with Particles
  • Graphics: Fixed material keywords and renderQueue not copied over by new Material(material) constructor and Material.CopyPropertiesFromMaterial
  • Graphics: Fixed MSAA initialization on older Android devices which only support multisampled_render_to_texture
  • Graphics: Fixed spamming error message importing an EXR file as sprite
  • OpenGL core: Fixed crash when using -force-glcore on Mac OS X where it's not yet supported
  • OpenGL core: Fixed Radeon HD 2000 - 4000 support
  • OpenGL core: Gracefully fallback to D3D when requesting OpenGL/ES with -force-gl** when the platform doesn't have a good enough OpenGL support
  • OpenGL ES: Fixed blit from backbuffer into RenderTexture
  • OpenGL ES: Fixed Fire HD development player crash
  • OpenGL ES: Fixed crash with dynamic batching of empty meshes
  • OpenGL: Always rely GL_EXT/IMG_multisampled_render_to_texture when available to save a lot of bandwidth when using MSAA
  • OpenGL: Resolved various invalid operation / enum errors due to platform compatibility issues
  • Particles: Fixed culling issues when particles are set from script
  • Particles: Fixed curve editor preview not updating after undo
  • Particles: Fixed Limit Velocity over Lifetime being framerate-dependent
  • Particles: Fixed prewarming performance problems
  • Particles: Fixed some spawn parameters not being random enough
  • Particles: Fixed StartDelay not working from script
  • Particles: Fixed sub-emitters sometimes not firing
  • Particles: Fixed various crashes
  • Shaders: Fixed some cases of objects with unsupported shaders not rendering at all (instead of rendering in pink)
  • Shaders: Fixed some loop constructs being translated wrongly for GLSL/Metal

Mecanim Fixes

  • Deprecated legacy culling modes BasedOnUserBounds and BasedOnClipBounds
  • Do not activate runtime State parameter on parameter rename
  • Fixed "Cleaning up leaked objects" message after using the Avatar Configure Tool
  • Fixed a bug where it would not be possible to animate the second material on a meshrenderer
  • Fixed a bug where the lock button on the Animator Window would reset after play mode
  • Fixed a case where going to play mode would prevent undo operations from being pushed
  • Fixed an editor performance issue with large blend trees
  • Fixed an error where transitions would disappear if a controller was edited without saving immediately after upgrade from 4.x to 5.x
  • Fixed an undo error in the blend tree inspector
  • Fixed an undo related crash
  • Fixed Animator.speed set in Start() not working
  • Fixed asserts with empty controller
  • Fixed Asset Store preview of Humanoid character
  • Fixed Avatar Configure broken ResetPose when OptmizeGameObject is on
  • Fixed Blend tree max/min thresholds not being updated when changed through dragging on the graph in the inspector
  • Fixed broken BlendTree slider with some BlendTree configuration
  • Fixed broken BlendTrees with identical negative blend values
  • Fixed changing controller files on disk not reloading BlendTree editor correctly
  • Fixed crash when building AnimatorController with empty layer
  • Fixed crash when calling SampleAnimation outside of the editor
  • Fixed crash when disabling GameObject in OnStateMachineEnter/Exit
  • Fixed crash when editing an Animation in the AnimationWindow with an AnimatorOverrideController
  • Fixed crash when importing some FBX files
  • Fixed crash when loading scene in playmode with an asset bundle containing a controller
  • Fixed crash when selecting a state with a null StateMachineBehaviour due to compilation errors
  • Fixed cutting a clip in FBX importer messing up other clips
  • Fixed display of transition pivot curves
  • Fixed false binding error on rig with Optimized Hierarchy On
  • Fixed GetStateMachineTransitions leaking memory
  • Fixed OnStateMachineEnter/Exit not being called on layers
  • Fixed renaming of states after exiting play mode
  • Fixed rotating view with mouse in the Avatar Configure Tool
  • Fixed runtime optimize/deoptimize hierarchy of GameObject
  • Fixed scaled UI buttons drifting when Animator has "Apply Root Motion" on
  • Fixed selection of blend tree items when multiple instances of the same motion occur in the same blend tree
  • Fixed sub-statemachine naming scheme
  • Fixed synced timing UI for additive layers
  • Fixed synchronization issue when you have both Animator's parameter window open
  • Fixed Transition interruption in destination State ExitTime
  • Fixed transition list temporarily loses its values on Editor re-compile
  • Fixed Transition Previewer handle manipulation
  • Prevented AnyState transitions to "Up" state machines from sub state machines because they were inconsistent
  • Removed Abstract StateMachineBehaviours from the list offered to users
  • Removed invalid multiple preview from the ModelImporter Animation sub-editor

Physics Fixes

  • Don't create PhysX shapes for disabled terrains
  • Ensure that both friction and bounce are updated when the PhysicsMaterial2D is set on a Collider2D from script
  • Fix a crash in the HingeJoint when enabling a GameObject containing a HingeJoint where the Connected Body was disabled
  • Fix problems where QNaNs leaked out of the physics system when using infinites as limit parameters for the ConfigurableJoint
  • Fix wheel collider applying the inertia tensor rotation the wrong way
  • Fixed incorrect depth sorting for results of 'Physics2D.GetRayIntersectionXXX' methods
  • Remove invalid tire contact shapes from the vehicles queries cache up on collider deactivation
  • Report scene hierarchy path of Collider when setting a transform that contains non-finite numbers
  • Reset query filters when removing wheels, to stay on the safe side as PhysX can actually run queries of almost zero length for disabled wheels

Scripting, Mono and IL2CPP Fixes

  • IL2CPP: Correct a C++ compiler error in generated code: "No matching function for call to 'il2cpp_codegen_raise_exception'"
  • IL2CPP: Fix crash when using OnCollisionEnter with no parameters
  • IL2CPP: Fix crash when using OnCollisionEnter2D with no parameters
  • IL2CPP: Prevent the exception "ArgumentException: Value does not fall within the expected range." during a call to the JoinMulticastGroup method
  • IL2CPP: Throw exceptions when classes are stripped instead of crashing
  • Mono: Fix issue with Socket.Select never returning sockets ready for read on Mac OS X
  • Mono: Fix Unity crash when detecting recursive type definition
  • Mono: Fixed issue with default property values and object initializers
  • Prefs: Show "MonoDevelop Solution Properties" whenever an external MonoDevelop or XamarinStudio is selected
  • Serialization: Fix crash when selecting "Scripting Backend" option in Other Settings
  • Serialization: Fixed not being able to serialize a field called "Base"

UI Fixes

  • Allow UI elements to render in overlay mode even if they don't have a shader that requires lighting
  • Disallowed InputFields with ContentType Password from copying text to the clipboard
  • Ensured that the parent canvas sorting layer/order is used unless override sorting is specified
  • Fix issue with UI stencil breaking in editor due to materials that were deleted being passed through to the render pipeline
  • Fixed dropdown editor not working due to bad file name
  • Fixed issue with text not showing properly after certain edit operations in InputField
  • Force children canvas to use the parent canvas matrix such that distance sorting is not applied
  • Only call PointerDrop callback if we have begun a pointer drag
  • Stop disabled graphics from blocking raycasts
  • Stop OnValidate being called at inappropriate times for UI elements
  • Update the Canvas RectTransform after LateUpdate to catch any Canvas camera positioning changes
  • When overriding sorting ensure to calculate the bounds using the generated mesh of the correct sub Canvas

WebGL Fixes

  • Correctly return errors on WWW downloads for invalid URLs
  • Fix iframe gaining focus when clicking on WebGL canvas
  • Fix Standard shader usage in Safari
  • Fixed DXT5 decompressor which resulted in slightly imperfect textures
  • Make AudioClip.Create print an error when used with the stream option in WebGL
  • Make AudioMixer work for controlling volume
  • Make Directory.Create and Directory.GetCurrent work correctly
  • Make state created in Application.ExternalEval persistent between calls, like in the web player
  • Make sure WebGL builds will not require any calls to JavaScript "eval" to run, as that is not permitted in some environments
  • Normalize scroll wheel inputs to give more consistent results
  • Remove non-functional icon settings from WebGL build settings
  • When Application.runInBackground is enabled, run the WebGL update loop at least once a second, even when the tab is not visible

Other Fixes

  • AssetBundle: Check if the manifest AssetBundle name has conflict with the user predefined AssetBundle name
  • AssetBundle: Fix the issue that Resources.UnloadUnusedAssets() doesn't unload fonts if they were loaded from an asset bundle
  • AssetBundle: Fix the issue that search result window won't get updated when the AssetBundle name is changed
  • AssetBundle: Fix the wrong size breakdown in the Editor.log when building AssetBundles
  • AssetBundle: Fixed issue that AssetBundleManifest.GetAssetBundleHash() returns wrong hash
  • AssetBundle: Fixed issue that AssetDatabase.GetAssetPathsFromAssetBundle only returns assets explicitly included in the AssetBundle
  • AssetBundle: Fixed issue that AssetDatabase.GetAssetPathsFromAssetBundleAndAssetName returns paths in random order
  • AssetBundle: Throw a warning when getting hash from AssetBundleManifest with a non-existing bundle name
  • AssetBundle: Fix non-first scene loading from streamed asset bundle with multiple scenes
  • Audio: Fixed AudioSource inspector not updating to show new pitch value when this is set from script
  • Audio: Fixed occasional crash at editor shutdown
  • Audio: Fixed occasional crashes that could occur with non-blocking sounds if the audio source was stopped right after being started
  • Audio: Fixed some memory leaks
  • Audio: Fixed undo of AudioMixerGroup colour changing and Solo/Mute/Bypass toggling
  • Audio: Now able to import from 32 bit fixed point and big-endian AIFF audio files
  • Audio: Transition to null snapshot in AudioMixer was crashing editor
  • Core: Enabled SSE2 optimizations on 64 bit OS X builds
  • Core: Fixed hang when passing large arrays to the Undo system
  • Core: Fixed several memory leaks when running standalone players with -batchmode
  • Core: References to "Resources/unity_builtin_extra" should get preloaded
  • Home: Go to Accounts and Manage Organizations now authenticate you before opening Accounts page
  • Home: Fixed stay on “connecting” window if there’s no internet connection
  • Importing: Changes to scripts are now correctly processed synchronously, fixing a range of issues with scripts relating to asset processing at import time
  • Importing: Fixed quit with 'Fatal Error' when out of memory during importing large cubemap with smooth edges enabled
  • Input: Fixed touch input hanging a Windows application if a second 'touch window' is created in a plugin
  • iOS: Don't fail fatally when Unity Xcode plugin can't be installed
  • iOS: Fixed stripping of GameCenter social platform
  • iOS: Fixed value of InputField.text when another field is being edited with keyboard
  • iOS: Xcode 7 build failures worked around by disabling Bitcode. Bitcode support will come later
  • Linux: Fix button down reports when querying any joystick and multiple joysticks are connected
  • Linux: Make window size locking more Window Manager-agnostic
  • Networking: Fixed MatchMakingClient constructor generating an error when created outside the main thread
  • Networking: Fixed NetworkServer.ReplacePlayerForConnection not setting up ownership of the new player object properly
  • Networking: Fixed NetworkServer.Spawn failing silently when the server is not active
  • Networking: Fixed NetworkServer.Unspawn not allowing objects to re-spawned
  • Networking: Fixed NullReferenceException when a client disconnects after the player object was deleted
  • Networking: Fixed incorrect serialization of some 64 bit numbers
  • Networking: Fixed NetworkTransform cause corruption of SyncVars on other scripts
  • Networking: Fixed NetworkTransform not updating if only velocity has changed
  • Networking: NetworkTransform not syncing character controller rotation when not moving.
  • OS X Standalone: Fixed fullscreen mode
  • OS X Editor: Fix RunOpenPanel() with extension non-empty filter
  • Plugins: Default Standalone settings for CPU specific plugins will be correctly set once again, additional this path variation is now possible as well, for ex., "Assets\MyPackage\Plugins\x86\Plugin.dll"
  • Substance: Fix memory leak in the Editor
  • Substance: Fix Resources.Load() and Resources.LoadAll() not waiting for ProceduralTexture generation completion before returning
  • Substance: Fixed caching-related regression where the cache would neither be read at startup nor written afterwards
  • Substance: Improved the handling of input groups in the inspector (a single group can no longer be split into several input groups)
  • Substance: It is no longer possible to change the size of a Substance asset that was published with a fixed size, a warning is displayed in the inspector instead
  • Terrain: Fixed crash after baking navmesh if there are LOD trees painted
  • Terrain: Fixed crash when reimporting a billboard asset
  • Terrain: Fixed crash when reimporting the prefabs that are selected as tree prototypes on an active terrain
  • Terrain: Fixed incorrect lighting effect on grass when rendered in deferred path
  • Terrain: Fixed occasional editor error message when a terrain is selected
  • Terrain: Fixed rendering artifacts with Tree Creator trees in deferred rendering paths
  • Version Control: Allow adding a new file under the name of a deleted file even if the deletion hasn't been committed
  • Version Control: Correct overlays for assets where .meta files are out of sync with their assets
  • Version Control: Grey out outgoing changeset 'delete empty changeset' context menu item when changeset is not empty
  • Windows Phone 8.1: Fix simulator build
  • Windows Phone 8.1: OnApplicationFocus and OnApplicationPause will be called now, same as on other mobile platforms
  • Windows Phone 8: Fixed corrupted display resolution when screen is rotated in Landscape mode
  • Windows Phone 8: Global shader parameters will be correctly reset when the application is resumed
  • Windows Phone: Anisotropic texture filtering works now
  • Windows Phone: Do not show Portrait Upside Down option in player settings (both 8.0 & 8.1)
  • Windows Phone: Fix SerializationWeaver failure when using enums from .NET framework
  • Windows Store Apps/Phone: AvatarBuilder.BuildHumanAvatar should work correctly now
  • Windows Store Apps/Phone: Fix build when native plugin uses collection interfaces with nested generic parameters
  • Windows Store Apps/Phone: Fixed Input.gyro.useracceleration to not include gravity.
  • Windows Store Apps: Application will correctly change its resolution when you change display resolution
  • Windows Store Apps: Fix a memory leak which happened on quality settings change
  • Windows Store Apps: Fix build for editor using Universal SDK
  • Windows Store Apps: Fixed framerate drop when "Low Latency Presentation API" is enabled
  • Windows Store Apps: Set orientation from player settings on startup
  • Windows Store Apps: Support JPEG files for visual assets
  • Windows: Fixed window size when switching back from fullscreen
  • WinRT: Fixed Networking sometimes throwing NotImplementedException
  • XboxOne: Fixed the "EditorOnlyPlayerSettings property not initialized" error

Changes since 5.2.0f2 (Release Candidate 2) build

  • GI: Fix infinite loop and memory leak that would lock up the machine during atlassing for lightmapping
  • Install: Fix Visual Studio 2015 Community installing even if pre-existing VS 2015 installed
  • Mac: Fix startup crash in x86 player
  • Windows 10 Universal Apps: Unity will produce projects compatible with Visual Studio 2015 RTM version.