Unity 5.0.2

Released:
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.

Windows (X86-64)

macOS (X86-64)

New to Unity? Get started

Features

  • XboxOne: The default update granularity used by XDK's makepkg tool has changed to File granularity rather than Chunk granularity. There is now a setting to control this:
    • Player Settings > Xbox One > Microsoft Xbox One Package Settings > Update Granularity. This property is set to File by default. Chunk is recommended only for games that have already been released using the Chunk granularity, which was the default prior to this build.

Improvements

  • Editor: Added Android 5.0 and 5.1 to "Minimum API Level" list.
  • GI: Don't add lights to Enlighten at runtime if they don't contribute to GI (bounce intensity at 0).
  • GI: Made pig assert message human readable.
  • iOS: Enabled thumb instruction support for IL2CPP ARMv7 slice. Should improve ARMv7 slice code size by 10-20%.
  • iOS/IL2CPP: Avoid generating NullReference checks on value types.
  • iOS/IL2CPP: Improve performance of finally blocks.
  • iOS/Metal: Better support for native rendering plugins when using Metal.
  • Mecanim: Fix direct blendtree editor slow down when there is too much motion.
  • Physics 2D: Added 'AreaEffector2D.useGlobalAngle' to allow the selection of whether the force-angle is global or local.
  • Physics 2D: Added 'Effector2D.useColliderMask' to allow the selection of whether the effector collider mask is used or the global collision matrix.
  • Physics 2D: Added 'Rigidbody2D.IsTouching' and 'Rigidbody2D.IsTouchingLayers' to complement the same on 'Collider2D' and 'Physics2D'.
  • Physics 2D: Renamed 'AreaEffector2D.forceDirection' to 'AreaEffector2D.forceAngle' (sciprts are automaticallly updated).
  • Physics: Report detailed error when generating collision meshes, also during asset import. Simplifies troubleshooting creation of non-triangle collision meshes.
  • Substance: New Substance features introduced by Substance Designer 5.0 are now supported.
  • Terrain: TerrainData.alphamapTextures is now public.
  • Windows Standalone: Hint to AMD driver that discrete GPU should be used, rather than integrated GPU.
  • XboxOne: Lightmap files are now listed in the package manifest in the same chunk as the scene that uses them.
  • XboxOne: Unity is now built with the April 2015 XDK. You will need to install the April 2015 XDK on your PC and use the same or later recovery on your console.
  • XboxOne: Updated docs to reflect terminology and tools in latest XDK, and added a section on Packaging.
  • XboxOne: Worker threads created by Unity's core systems (Physics, AI) will no longer run on cores 0 and 1, which are reserved for the Rendering thread and Unity's main thread respectively. This will be a performance gain in most cases by avoiding thread context switches.

Changes

  • Android: Added support for real 16bit DisplayBuffer. It can only be enabled in PlayerSettings, Handheld.use32BitDisplayBuffer is deprecated.
  • Scripting: GizmoType enum has changed (and is updated by automatic script updater). NotSelected -> NotInSelectionHierarchy. SelectedOrChild -> InSelectionHierarchy. New member NonSelected added.
  • XboxOne: Unity is now built with the March 2015 XDK. You will need to install the March 2015 XDK onto your development PC and use the same or later recovery

Fixes

  • AI: Allow setting slope above 60 deg by using serialized object.
  • AI: Fixed buggy example code for script API example.
  • AI: Handle out of memory when building huge world.
  • Android: Apply Holo or Material theme if the user did not specify other explicitly.
  • Android: Apply user theme if set.
  • Android: Fixed crash in Mono caused invocation of wrong method.
  • Android: Fixed crash on Application.Quit().
  • Android: Fixed issues with soft input caused by Samsung back button fix
  • Android: Fixed window buffer leakage
  • Android: Improved soft input dialog.
  • APIUpdater: APIUpdater assumes script encoding is UTF-8.
  • APIUpdater: APIUpdater crashes when updating methods that return arrays of generic types.
  • APIUpdater: Unity imports/upgrades DLL built for 4.x twice and it throws errors after first import.
  • Asset Bundles: AssetBundle.CreateFromMemory with uncompressed bundles will no longer block the main thread for several seconds.
  • Asset Importing: Fixed importing of an assembly that contains classes inherited from generic engine's classes.
  • Asset Management: PluginImporter settings for OSX native plugins will no longer be lost in .unitypackage files.
  • AssetBundle: Fixed the issue that prefab loaded from AssetBundle lost the reference to a material in a variant AssetBundle.
  • AssetBundle: Fixed the issue that scene AssetBundle didn't get rebuilt when the referenced prefabs were changed.
  • AssetBundle: Make the error message more informative when building AssetBundles.
  • D3D11: Fixed shaders that use min16float types.
  • Documentation: Fixes for 5.0, removed the "Overview" link.
  • Documentation: A number of bugs have been fixed.
  • Documentation: Ridigbody typos fixed.
  • Editor - Other: Fixed ScriptableObject assets to pull icons correctly from their associated script
  • Editor: Android - Fixed updating SDK on x86 Java on Windows.
  • Editor: Fixed crash when PlayerSettings.GetPropertyString is called for not existing property.
  • Editor: Fixed Camera.SetTargetBuffers with AA-ed renderbuffers.
  • Editor: Scene View content is no longer tinted in playmode.
  • GI: Ambient light is not shown after baked data is cleared.
  • GI: Entering play mode while baking with on demand makes bake indication get stuck and game show incorrect result.
  • GI: Fixed crash caused by Unity reading GI files as resource files and a certain GI file had data that looked like a header but caused a huge allocation.
  • GI: Fixed lightmap resolution overlay not showing up on Terrains.
  • GI: Reloading scene makes the background darker.
  • GI: With continuous baking enabled and baked light, light probes stop working after exiting play mode.
  • Graphics: Fixed double-fog in deferred shading + forward-only opaque objects + GlobalFog effect.
  • Graphics: Fixed printing of some loops in GLSL/Metal.
  • Graphics: Improved rough front-to-back sorting for opaque objects, for better GPU Z culling efficiency.
  • IMGUI: Fixed calculation of TextGenerator vertices position when lineSpacing is 0.
  • Input: Input.GetJoystickNames() on Windows no longer returns a single blank entry when no joysticks are connected.
  • Input: Input.mousePosition is clamped correctly when a Windows player is resized.
  • iOS: Added dummy vertex channel for missing shader channels when dynamic batching.
  • iOS: Added Xcode 6.3 Build & Run support.
  • iOS: Fixed crash when rendering empty meshes.
  • iOS: Fixed HTTPs problem.
  • iOS: Fixed memory corruption and crash initiated by calling WebCamTexture.Stop().
  • iOS: Fixed memory leak in iOS WebCamTexture.GetPixels().
  • iOS: Fixed crash on rendering empty meshes.
  • iOS: Fixed duplicate property value removal in certain Xcode projects.
  • iOS: Fixed WebCamTexture.didUpdateThisFrame.
  • iOS: Fixed assert in corner case when webcam code is trying to pick supported FPS.
  • iOS/IL2CPP: Add a null terminator to string arrays when they are marshaled.
  • iOS/IL2CPP: Added support for string.Normalize.
  • iOS/IL2CPP: Additional code size improvements from generic sharing:
    • Allow partial sharing (e.g. Dictionary is shared with Dictionary).
    • Allow sharing when the type parameter constraint is an interface.
    • Share enums and their base types as generic parameters.
  • iOS/IL2CPP: Allow Encoding.GetEncoding to correctly.
  • iOS/IL2CPP: Allow thread-local static fields to work correctly in generic classes. Specifically, this corrects the Parse SDK crash in 4.6.4p1.
  • iOS/IL2CPP: AudioMixerSnapshot.TranslateTo no longer throws null reference exception on IL2CPP.
  • iOS/IL2CPP: AudioMixerSnapshot.TranslateTo no longer throws null reference exception on IL2CPP.
  • iOS/IL2CPP: Avoid class initialization and metadata construction deadlocks.
  • iOS/IL2CPP: Cast non-pointer references types to System.Object for comparison in conditional statements.
  • iOS/IL2CPP: Correct an InvalidCastException that can occur when setting an array value.
  • iOS/IL2CPP: Correct the behavior of CultureInfo.CreateSpecificCulture.
  • iOS/IL2CPP: Correctly lazy initialize the type information when Type.GetDeclaringType is called.
  • iOS/IL2CPP: Do not write extern declarations inside p/invoke wrappers for methods that return a class or delegate.
  • iOS/IL2CPP: Fix a number of problems related to WebRequest and asynchronous I/O:
    • Fixed socket I/O requests getting stuck in ThreadPool on POSIX/iOS.
    • Fixed race condition in Monitor code that lead to 5 second stalls in Monitor.Exit().
    • Fixed ThreadPool not re-using idle worker threads (lead to potentially very high memory consumption and bad performance).
    • Fixed ThreadPool upper thread count limits being very low; now roughly the same as on Mono.
    • Fixed ThreadPool.SetMinThreads() and SetMaxThreads() having no effect.
  • iOS/IL2CPP: Fixed an infinite recursion when constructing generic type.
  • iOS/IL2CPP: Fixed an issue with open delegates that return void.
  • iOS/IL2CPP: Fixed crashes in socket code due to sockets being destroyed too early and prevent Thread.IsAlive from returning true after thread has terminated.
  • iOS/IL2CPP: Fixed Interlocked.Exchange and Interlocked.CompareExchange for interfaces.
  • iOS/IL2CPP: Fixed issue with managed exceptions not being thrown by a method called by Method.Invoke in some cases.
  • iOS/IL2CPP: Fixed multidimensional array interfaces.
  • iOS/IL2CPP: Fixed a crash with StrangeIOC.
  • iOS/IL2CPP: Fixed an issue where IL2CPP would use -> operator on value types in certain cases.
  • iOS/IL2CPP: Fixed code generation for binary comparisons containing expressions.
  • iOS/IL2CPP: Fixed code generation for unsafe fixed arrays.
  • iOS/IL2CPP: Fixed crash in some cases when accessing an enum inside a generic class.
  • iOS/IL2CPP: Fixed crash related to arrays of Enums on 64-bit.
  • iOS/IL2CPP: Fixed crash when using weak GC handle onstring constants.
  • iOS/IL2CPP: Fixed File::Replace when destinationBackupFileName is null.
  • iOS/IL2CPP: Fixed IL2CPP failing to convert an assembly which contains Ldtoken instruction on field that is declared in a generic type. This issue affected CSVHelper.dll plugin.
  • iOS/IL2CPP: Fixed issues with exception thrown from DateTime constructor, DateTime ToUniversalTime, DateTime ToLocalTime, DateTime IsDaylightSavingTime.
  • iOS/IL2CPP: Fixed memory leak when using audio callbacks.
  • iOS/IL2CPP: Fixed occasional code generation issues when multiple local enum variables are used in conditional expressions.
  • iOS/IL2CPP: Fixed overflow arithmetic instruction handling.
  • iOS/IL2CPP: Fixed overflow arithmetic instruction handling.
  • iOS/IL2CPP: Fixed stripping issue when NavMeshAgent was referenced only from scripts.
  • iOS/IL2CPP: Fixed support for enums nested in generic types.
  • iOS/IL2CPP: Fixed support for type/method names using non ASCII characters.
  • iOS/IL2CPP: Fixed System.Environment.TickCount on iOS.
  • iOS/IL2CPP: Fixed TerrainData.GetAlphaMaps crashing on IL2CPP.
  • iOS/IL2CPP: Fixed TerrainData.GetAlphaMaps crashing on IL2CPP.
  • iOS/IL2CPP: Fixed unordered comparison opcodes code generation.
  • iOS/IL2CPP: Fixed WebClient requests using a timeout.
  • iOS/IL2CPP: Forward declare empty types (created to end infinite recursion) that are used as method arguments.
  • iOS/IL2CPP: Generate C++ code which will compile when a nested generic passes the maximum depth for recursive nested generics.
  • iOS/IL2CPP: Generate C++ code which will compile when a nested generic passes the maximum depth for recursive nested generics.
  • iOS/IL2CPP: Implemented Assembly.CodeBase by returning the value of AssemblyName.Name.
  • iOS/IL2CPP: Implemented Assembly.CodeBase by returning the value of AssemblyName.Name.
  • iOS/IL2CPP: Make Activator.CreateInstance work for arrays.
  • iOS/IL2CPP: Match the behavior of the Mono scripting backend by not stripping the Animation code from the engine when code stripping is enabled.
  • iOS/IL2CPP: Match the Mono behavior which allows inflated generic delegate types like System.Action to be marshaled as normal delegates.
  • iOS/IL2CPP: Prevent a stack overflow in il2cpp.exe when it converts have an infinitely recursive generic type with an array generic argument.
  • iOS/IL2CPP: Removed the option to user precompiled headers in the Player Settings, as this option in no longer supported for the IL2CPP scripting backend.
  • iOS/IL2CPP: Return the correct number of write and error sockets from the Socket::Select method.
  • iOS/IL2CPP: Support Type.MakeGenericType for runtime creation of generic types where the generic arguments are reference types.
  • iOS/IL2CPP: Type.GetType throws an ArgumentException now when the provided type name was wrong.
  • iOS/IL2CPP: Use the proper type for the result of the IL sub opcode.
  • iOS/IL2CPP: Use the Size field of the StructLayout attribute to pad marshaled types if necessary. This allows Marshal.SizeOf to return the correct value for these types.
  • iOS/IL2CPP: Using AudioSettings.Reset() no longer crashes on IL2CPP.
  • iOS/ILCPP: Do not emit metadata for generic types at compile time. This significantly decreases the size of the final binary in most cases.
  • iOS/Metal: Fixed crash in WarmupAllShaders when called in update with AA-ed backbuffer.
  • iOS/Metal: Fixed WebCamTexture.videoVerticallyMirrored.
  • JobSystem: Fixed issue where job system would create long stalls in some cases on processors with hyper threading.
  • Mecanim: Fixed a bug where copy pasted states would share the same state machine behaviour instance
  • Mecanim: Fixed animation events not fired for non looping clip with length of 0 second.
  • Mecanim: Fixed Blend Tree parameter doesn't get updated in the graph view when changing the blend tree parameter.
  • Mecanim: Fixed cannot rename parameter in animator parameter window.
  • Mecanim: Fixed crash when a StateMachineBehaviour disable an animator component or change something that trigger a Rebind.
  • Mecanim: Fixed crash when calling AnimationClip.events from script.
  • Mecanim: Fixed lost transition when importing a project from 4.x to 5.0.
  • MonoDevelop: Fixed issue with Attach to Process dialog making MonoDevelop unresponsive on OSX.
  • MonoDevelop: Fixed issue with file tabs being unresponsive after using auto-hide of panels.
  • OpenGL ES 2.0: Fixed shadow acne on GPUs that do not support native shadow samplers.
  • OpenGL ES: Fixed crash when attempting to render a mesh with 0 vertices.
  • OpenGL: Fixed a crash in vertex stream management.
  • Physics 2D: 2D physics will now give deterministic results on the same device when entering play-mode in the editor.
  • Physics 2D: Don't suppress gravity when a Rigidbody2D.MovePosition is taking place.
  • Physics 2D: Ensure that 2D Box/Circle cast methods support shape being overlapped initially.
  • Physics 2D: Ensure that a 2D joint created from script is correctly enabled.
  • Physics 2D: Fixed regression where PlatformEffector2D 'One Way' would allow a collider to pass but then begin to collide with it.
  • Physics 2D: Setting center-of-mass on a Rigidbody2D now doesn't result in bad rotational inertia.
  • Physics: Don't allow to break rotational DoF lock by setting angularVelocity directly.
  • Physics: Fixed capsule height being incorrectly computed in sweeps and casts code.
  • Physics: Fixed cases where HingeJoint settings, like useMotor and useLimits, were not correctly applied.
  • Physics: Fixed crash on scene load when Cloth component is missing a SkinnedMeshRenderer component.
  • Physics: Fixed crash that could occur when a body had more than 64 contacts generated.
  • Physics: Fixed crash when the transform scale on a MeshCollider had an axis set to zero. Request will now be ignored.-
  • Physics: Fixed incorrect bounds of a capsule collider.
  • Physics: Fixed crash that happened when toggling "isKinematic" on a body with joint that had joint projection disabled and the body had also been connected to the same group of joints already.
  • Physics: Fixed crash when a collider has generated too many contacts.
  • Physics: Fixed WheelCollider applying inertia tensor rotation the wrong way.
  • Physics: Protect SetSteerAngle from setting wheel angles that are bad for PhysX.
  • Physics: Raised the max colliders per scene limit on mobile platforms, from 32K.
  • Physics: Report error when trying to create a non-convex MeshCollider with Trigger enabled.
  • Plugins: Fixed invalid plugin collisions, for ex., in cases where plugin is unsupported by OS, but was still being used.
  • Samsung TV: Fixed crash on close issue.
  • SamsungTV: Fixed bug where cursor would stop moving when timeScale was set to 0 on 2013 TVs.
  • SamsungTV: Fixed problem where native plugins would not be found on retail 2015 TVs.
  • SamsungTV: Fixed race condition crash that originated from within mono when NumberFormatter was being called from a non-main managed thread.
  • Scene/Game View: Fix the issue about cannot select objects after importing the legacy packages.
  • Scripting: Allow a component which derives from a type in UnityEngine.UI and is built in a custom assembly to be used in the project.
  • Scripting: Fixed EditorGUI.FloatField and EditorGUILayout.FloatField unable to return negative and positive infinity
  • Scripting: GizmoType works as expected
  • Scripting: Re-added a stub for Resources.LoadAssetAtPath which auto-upgrades to AssetDatabase.LoadAssetAtPath
  • Shaders: Don't crash in shader warmup on "-nographics" device.
  • Shaders: Fixed some loops being miscompiled for DX9.
  • Shaders: Fixed some sampler precision issues in glsl-optimizer; was resulting in missing cast on Metal when sampling depth texture with explicit LOD.
  • Substance: Entering play mode should no longer cause a rebuild of ProceduralMaterials.
  • Substance: Fixed 'path != ""' assert when live-previewing a Substance from the Asset Store.
  • Substance: Fixed console spam related to the absence of '_MainTex' shader property.
  • Substance: Fixed crash when assigning a shader that does not cause outputs to be generated (e.g. Unlit/Color) to a ProceduralMaterial.
  • Substance: Fixed hang in ProceduralMaterial::Clean().
  • Substance: Global Illumination flags are now correctly handled by ProceduralMaterials.
  • Substance: It is no longer possible to dynamically create a ProceduralMaterial using 'new'.
  • UI: PointerEventData.worldPosition and .worldNormal are now set correctly for right-mouse-button and middle-mouse-button events.
  • VR: Fixed GearVR startup crash on Galaxy S6 devices by enabling pbuffer Context support.
  • VR: MSAA autoresolve fixed for GLES 3.0 devices.
  • WebGL: Fixed stripping (previously failing to register WebCamTexture class in runtime).
  • WebGL:/iOS: Fix crash in UnusedBytecodeStripper on BoxCollider2D/CircleCollider2D center member access.
  • WebPlayer: Fixed WWW form posting.
  • WebPlayer: Workarounds for new Chrome, where NPAPI is disabled by default.
  • Windows Phone 8: Uppercase first letter in InputField.
  • Windows Phone 8: Windows Phone 8 specific plugins (compiled against Windows Phone 8 .NET) which don't have a placeholder won't be passed to the Mono compiler, like it was in 4.6.
  • Windows Standalone: Allow to close the main window even with the touch support enabled.
  • Windows Standalone: Connecting USB devices should no longer throw spurious warnings.
  • Windows Store Apps: .NET Core plugins without placeholders, won't be passed to Mono compiler, like it was to 4.6.
  • Windows Store Apps: Build&Run disabled when using Unity CSharp projects.
  • Windows Store Apps: Fixed the issue, build from editor when C-projects are enabled.
  • Windows Store Apps: Fixed issues with plugins in Universal apps, removed SDK property UniversalSDK81 from plugin inspector, as it didn't make sense. Also having Windows 8.1 and Windows Phone 8.1 specific plugins won't longer cause building to Universal apps to fail.
  • Windows Store Apps: mouse presence now is detected by mouse activity, which is much more reliable.
  • Windows Store Apps/Windows Phone 8.1: Unity will correctly hide password when using GUI*.PasswordField on touch based devices.
  • Windows Store Apps/Windows Phone: Fixed AssemblyConverter failing due to types from other module.
  • Windows Store Apps/Windows Phone: Fixed NullReferenceException in SerializationWeaver.
  • Windows Store Apps/Windows Phone: System.IO.File.Exists should work even if you specify forward slashes which is invalid in WinRT platforms, Unity will convert them to backwards slashes.
  • Windows Store/Phone: Unity will always give postprocessed assemblies a new random MVID.
  • Windows Store/Windows Phone 8.1: Fixed an issue which caused types unavailable in .NET for Windows Store but available in Unity's replacement library not to be resolved if they were in a plugin.
  • WindowsPhone8: Fixed AssemblyConverter error, where sometimes it would fail to find references.
  • WWW: WWW.Dispose sometimes hung Unity on a very slow connection.
  • XboxOne: Application.OpenURL is now implemented on Xbox One. Calling it will open the Internet Explorer App.
  • XboxOne: Bad image from Kinect fixed, YUY2 support.
  • XboxOne: Bloom artefact when using MSAA is now fixed.
  • XboxOne: Crash when using Clear Depth Only, support for capturing RTs of different bit depths.
  • XboxOne: DOF image effect on fade sprites fixed.
  • XboxOne: Enabled support for deferred rendering and HDR.
  • XboxOne: Fixed a crash that can happen when shutting down the audio device.
  • XboxOne: Fixed a rare startup crash that usually manifested as a crash in the audio driver, sometimes showing up as a stack buffer overrun exception.
  • XboxOne: Fixed compute shader UAV buffer read/write and memory access.
  • XboxOne: Fixed port assignments so Unity Profiler and Debugger work more consistently
  • XboxOne: Lightmaps for scene 0 are now included in the package manifest.
  • XboxOne: Made Mono's exception handler treat unexpected exceptions (ex: not a breakpoint) better. This should remove some instances where a crash dump was not created.
  • XboxOne: Now matches PC (deferred rendering with HDR related).
  • XboxOne: The /updcompat option for makepkg.exe now has a space before it so it's read by the tool correctly.
  • XboxOne: The file path used for makepkg.exe is now quoted when a custom manifest file is used.
Changeset:
0b02744d4013

Third Party Notices

For more information please see our Open Source Software Licenses FAQ on the Unity Support Portal

We use cookies to ensure that we give you the best experience on our website. Visit our cookie policy page for more information.

Got it