Release notes

Features

Graphics features:

Shader importing has been massively improved:

Shaders are imported much faster, especially complex surface shaders. Instead of compiling all shader variants for all possible platforms at import time, now the needed shader variants for needed platforms are compiled on-demand. Shader compilation results are cached under Library folder, so identical compilations happen much faster.

Error reporting was improved. Errors are reported on correct lines (imagine that!), and errors in .cginc files report the filename.

Surface shader debugging was improved. No more "#pragma debug" nonsense; just click "Show generated code" in the inspector.

Added Sparse Texture support (also known as "mega textures" or "tiled textures"). This is a low-level API feature, see SparseTexture class. Implemented on DirectX 11.2 (via tiled resources) and desktop OpenGL (via ARB_sparse_texture).

Editor features:

New Hierarchy Window sorting - sorting of elements is now based on transform order instead of name.

Introduced new editor API AssetDatabase.FindAssets (string filter, string[] folders). Search the Asset Database for assets by filename, type and asset label. See documentation for more information.

Added Selection.assetGUIDs for getting the current selected assets in the Project Browser. It also returns the folder selection in the first column in the Project Browser (in Two Column mode) which is not part of the main selection.

2D Physics features:

Added 2D Joint Gizmos.

Added new 2D physics component: WheelJoint2D.

Unity Remote upgrade:

Unity Remote 4 is our play testing solution for iOS and Android. As of Unity 4.5, there’ll be no more Wifi latency when playtesting your games on iOS devices. Plus, we’ve added support for the full range of iOS device inputs including accelerometers, gyroscopes and camera images. Unity Remote 4 is available free of charge from Google Play and the App Store.

Mecanim features:

Added CanTransitionToSelf option on AnyState Transitions.

Added new scripting function Animator.Rebind(). You can use this function to manually rebind the animator data set to unity when you change something in your GameObject hierarchy.

For humanoid rigs, in the importer, you can specify a transform node that will be used as root motion for an animation clip. The transform node will replace the automatically extracted root motion computed by Mecanim. (Pro Only).

Editor: Expose EditorGUIUtility.standardVerticalSpacing to make it possible for people to create standard spacing between controls (for example in PropertyDrawers) without having to hardcode the amount.

iOS: Added support for render events (GL.IssuePluginEvent). Please note that you need to manually register them, as iOS do not support dynamic libraries. Check trampoline for UnityRegisterRenderingPlugin function.

Mecanim: Humanoid auto-configure now only use rotation information from bind pose. Translations found in bind pose were different from the ones in animation. This was causing undesired retargeting differences.

Mecanim: Humanoid setup and retarget console warning have been improved. Less noise and more precise information.

Substance: Alpha channel generation can now be explicitly disabled for ProceduralMaterials in order to use runtime DXT1/ETC compression or to bake DXT1/ETC/RGB24 bitmaps.

Substance: Baked ProceduralTextures are now created from full RGBA32 data instead of pre-existing (and potentially already compressed) editor data.

Substance: Decreased memory consumption in the editor.

Substance: Lower peak memory footprint when generating textures for materials that were queued roughly at the same time.

Substance: Material thumbnails are now listed in the static preview in the same 'semantically correct' order they appear in the SubstanceImporterInspector.

Substance: Mipmap generation can now be disabled (the default is 'enabled').

Substance: Outputs tagged as "Specular" will automatically map to the _SpecTex shader property if present.

Substance: Outputs that are used solely as sources for other outputs's alpha channels (typically the specular output) are no longer generated separately and will not appear in the project window anymore unless they're directly assigned to a shader slot or the GenerateAllOutputs option is checked.

Substance: ProceduralMaterials being computed when exiting play mode are now discarded, making the transition from play mode to editor mode faster.

Substance: ProceduralMaterials loaded from AssetBundles can now be inspected in play mode.

Substance: Processing Substances in the Editor is now always multi-threaded when not in play mode.

Substance: Runtime PVRTC compression on iOS/Android is now faster and of higher quality.

Substance: Switching between graphs or instances in a SubstanceImporterInspector will no longer cause a reimport. The reimport of the modified SBSAR asset is now performed when the entire SubstanceImporterInspector is disabled.

Substance: The ProceduralMaterial memory budget will be increased in smaller increments on mobile targets to further lower the peak memory footprint on these platforms.

Windows: Unity Editor will fallback to DirectX 11 if DirectX 9 is not available, instead of showing the dialog graphics were not initialised.

Webplayer: Java Webplayer Installer is now updated with the latest Java security requirements.

Windows Phone: The preview resolution is as close as possible to what the user requested.

Windows Phone: Non uniformly scaled meshes use less memory.

Windows Phone: Webcam resolution selection is now chosen by the aspect ratio and the total area of the preview.

Windows Store Apps / Windows 8.1: Added support for SwapChainPanel, it will be used in XAML project files generated for Windows 8.1, you can still use SwapChainBackroundPanel if you want.

Windows Store Apps: When building, instead of storing absolute Unity paths inside a project, they will be store in UnityCommon.props file instead, this way making it easier to share project between several PC's.

Windows Store Apps: Webcam support is more stable; webcams now also support MJPG streams.

Windows Store Apps: Windows 8.1 player will now respect CompositionScale of SwapChainPanel.

Windows Store Apps: You can now generate C# Assembly-Charp* projects (in BuildSettings window) which will be referenced from generated solution, allowing you to easily debug and change your scripts on the fly, the only thing to keep in mind, if you'll add/remove serialised fields in classes, you'll need to rebuild your project from Editor to compensate for changed serialised data.

Physics: All existing joints are now derived from AnchoredJoint2D component rather than the Joint2D component.

Physics: Collision and trigger callbacks now occur on both the GameObject containing the 2D collider as well as the GameObject containing the 2D rigid-body.

Physics: Updated Box2D to v2.3.0.

Sprite Editor: Now an undockable utility window and can only be opened from the sprite inspector.

Sprite Editor: Removed 'Minimum size' from automatic slicing dialog.

Substance: A new 'DoNothingAndCache' loading behaviour is now available. Substances are no longer automatically generated when loaded but are still cached to non-volatile storage after the first call to RebuildTextures() / RebuildTexturesImmediately().

Substance: ProceduralMaterial.isCachedDataAvailable was added to check if cache data will be used for a cached ProceduralMaterial or if its outputs will have to be rebuilt. Coupled with DoNothingAndCache, this allows for interactive "installer / substance decompressors" scenes to be created.

Exposed a flag to enable collisions between rigid bodies connected with any type of joints.

Fixed 2D collider gizmo not rendering in expected position.

Fixed child Collider2D position when rotated under negative scale.

Fixed cloth simulation after re-activation.

Fixed crash caused by three or more collinear vertices used in a PolygonCollider2D.

Fixed crash when removing a 2D rigid-body that is currently reporting collisions or triggers.

Fixed crash when sphere casting to a mesh collider with less than 9 triangles on win64 target.

Fixed DistanceJoint2D incorrectly controling maximum distance only.

Fixed issue where changing the scale of a Collider2D during a collision callback could result in a duplicate callback being made.

Fixed issue where compound hierarchies of Collider2D would not correctly rotate.

Fixed problem in Box2D where joints can cause infinities in static body state when solving position constraints. This would persist even when exiting play mode due to the static ground-body being used.

Increased the range for JointAngleLimits2D so that angle limits can extend beyond a single rotation.

Made the default of 2D rigid-body center-of-mass to the rigid-body origin.

Physics2D.OverlapCircle() and Physics2D.OverlapArea() now check all edges on EdgeCollider2D.

WP: Fixed a bug where accessing graphics device in OnApplicationPause() handler causes a crash if device screen times out.

WP: Fixed a crash which would sometimes occur during scene load if user pauses the game at the appropriate moment.

WP: Fixed an error, where some of the serialization functions were not found, during build from Unity.

WP: Fixed an issue where .NET would throw a generic constraint violation exception when calling a method that has a generic constraint, overrides base class method, returns IEnumerator and calls a delegate which has the same generic parameter constraint

WP: Fixed an issue where screen would get rotated after rendering screen to a texture while in landscape orientation.

WP: Fixed an issue where Visual Studio would sometimes refuse to deploy game to the phone.

WP: Fixed an issue which caused player to crash on application resume when unsupported shaders were present in the scene.

WP: Fixed reflections not working on standard pro asset water when application is in landscape orientation.

WP: Fixed spotlight culling when application is in landscape orientation.

WP: Fixed SystemInfo.operatingSystem and SystemInfo.processorType to report correct operating system on all players and correct CPU name on ARM.

WSA: When building player, Unity will mark all files as non read only, so overwriting shouldn't be a problem. This should solve issue for Perforce user, where some of the files were being marked as read only.

WSA: When generating Assembly-CSharp projects, they will reference WinRTLegacy.dll now.

WSA: When using Debug configuration, and D3D11 debug layers are not available - an informational message will be printed instead of error.

Build Pipeline: Icons are now applied before post-processing scripts are called.

Debugger: Don't hang when debugger evaluation triggers an exception.

Documentation: "Switch to component" button in Scripting Reference.

Documentation: Correctly expanding left side tree in Scripting Reference.

Documentation: Fixed many customer-reported bugs.

Documentation: Fixed bug which caused UnityEditor to be excluded from Scripting Reference.

Documentation: Improved display of generic classes and functions.

Documentation: Re-introduced API History in scripting reference docs.

Documentation: Showing name of current class/member in page title.

Documentation: Switching between C# and JS for sample code in Scripting API on IE11 has been fixed.

Events: Fixed OnMouseExit not being called properly.

IMGUI: Don't send OnMouseDown event for last used object when clicking IMGUI elements.

IMGUI: Fixed bug in GUI.ScrollTowards / GUI.ScrollTo that caused it to think it needed scrolling when it didn't. This also fixes a bug in the Highlighter API where a highlight would fail without warning for certain ScrollViews.

Input: Fixed touch tracing stuck to last game object.

Installers: DisplayVersion not set correctly by Windows installers.

Licence system: Re-enabled license logging in editor.log.

License system: Removed support for old PACE license files.

Linux: Fixed "jump" when initially locking mouse cursor.

Linux: Fixed DllImport of system libraries.

Linux: Fixed eventual runaway CPU usage on headless players.

Linux: Fixed non-ASCII text input.

Linux: Fixed OnApplicationFocus.

Linux: Fixed Ping implementation.

Linux: Fixed switching to fullscreen mode for window managers that do this in two steps.

Scripting: Only add the component if the required components are not conflicting with the existing ones.

Scripting: Undo/Redo of FullHierarchyUndo works now.

Serialization: Fixed crash on type load error.

Substance: Cache files for GenerateAndCache / DoNothingAndCache are no longer backuped to iCloud and should no longer cause AppStore rejection.

Substance: Color specular maps are now correctly generated, and the proper specular alpha channel is now used when the specular map is used as the alpha source for another ProceduralTexture. This might change the way some metallic materials are rendered.

Substance: Fixed a rare bug of DXT1 normal maps being used on Windows instead of DXT5.

Substance: Fixed a serialization bug which would cause webplayers to crash with newly built content.

Substance: Fixed crash when importing a Substance with usage-less outputs.