Unity 4.7.0

The Unity 4.7.0 release brings you few improvements and several fixes. Read the release notes below for details.

For more information about the previous main release, see the Unity 4.6 Release Notes.

Update now

New to Unity? Get started

Release notes

Improvements

  • Android: Added support for Marshmallow OS runtime permissions. Added possibility to disable permission dialog by adding activity metadata.
  • iOS/IL2CPP: Now allow null checks, array bounds checks, and divide by zero checks to be selectively included or omitted from generated C++ code by using a C# attribute on type, method, or property definitions.
  • iOS/IL2CPP: Enabled incremental build support using the "Append" option. Keep the generated code stable across additional, removal, and changes for string literals and non-generic types.
  • iOS/IL2CPP: Added support for the MethodImplOptions.NoInlining option to prevent methods in the generated C++ code from being inlined.

Changes

  • Android: Disabled Audio Fast Path for GearVR.

Fixes

  • Android: Buildpipe - Do not run dex if exporting the project (746248).
  • Android: Fixed NullReferenceException on x86 devices running Android 5.0 or newer.
  • Android: Fixed OBB deployment on Android 6.0 and some older devices (734408).
  • Android: Marshmallow - Fixed issues when querying for custom permissions (750227).
  • BlackBerry: Fixed crash that would happen with some projects on the Passport after consecutive runs (670282).
  • Editor: Prefab is being updated correctly in the Project View when Apply or GameObject/Apply Changes to Prefab is selected and Cache Server is enabled (702141, 662597).
  • GLES3: Fixed a crash on MSAA resolve to render texture (719502).
  • Graphics: Fixed crash when attempting to use dynamic batching with a mesh that has no vertices or indices (710447).
  • iOS: Added build & run support for Xcode 7.1 (739935).
  • iOS: Fixed a crash relating to GLES context management on iOS7 (677907).
  • iOS: Fixed a crash when attempting to batch empty meshes.
  • iOS: Fixed CRC check when using WWW.LoadFromCacheOrDownload(url, fileVersion, crc) (737503).
  • iOS: Fixed legacy launch screens on iOS 9.1.
  • iOS: Fixed simulator support on Xcode 7.1 (740343).
  • iOS: Fixed the keyboard input preview from not showing up in certain situations (724035).
  • iOS/IL2CPP: Avoid stack overflow crash due to large allocation with alloca (739685).
  • iOS/IL2CPP: Changed the conv.i8 opcode implementation to handle sign extension correctly so that a conversion from a large negative int to a uint to a long in C# works as expected (716811).
  • iOS/IL2CPP: Corrected the behavior of Array.SetValue and Array.GetValue for integer values used with an enum array (732205).
  • iOS/IL2CPP: Correctly initialize the metadata for default parameter values that are obtained via reflection (745793, 737565).
  • iOS/IL2CPP: Enabled profiling of GC allocations (735880).
  • iOS/IL2CPP: Fixed race condition during cleanup of thread pool threads (738232).
  • iOS/IL2CPP: Generate proper C++ code for a type with two fields that have the same type and name (735413).
  • iOS/IL2CPP: IL2CPP: Prevent a possible deadlock when using System.Threading.ReaderWriterLock (732317).
  • iOS/IL2CPP: Improved the error message when the byte code stripper is unable to locate an assembly (734534).
  • iOS/IL2CPP: Now allow the [Preserve] attribute to correctly prevent stripping of a method in a nested type (738356).
  • iOS/IL2CPP: Prevent a crash in the player in MetadataCache::GetTypeInfoFromTypeDefinitionIndex when a constrained call is made to a generic virtual method defined on a value type (737853).
  • iOS/IL2CPP: Prevent a KeyNotFoundException exception from occurring during code conversion when a generic method is used with at least one generic argument that exceeds the maximum generic recursion depth (730233).
  • iOS/IL2CPP: Prevent a memory leak that caused some GCHandles, including those used to reference MonoBehaviour instances, from being correctly reclaimed by the garbage collector (736167).
  • iOS/IL2CPP: Prevent a NullReferenceException exception from occurring during the processing of the Preserve attribute which can obscure the actual cause of a problem (717997).
  • iOS/IL2CPP: Prevent an intermittent hang with asynchronous sockets (718885).
  • iOS/IL2CPP: Prevent generated C++ code from including a header file that was not generated when the type which could have been generated in that header is used only in an attribute applied to an assembly (737996).
  • iOS/IL2CPP: Provide proper managed stack traces when the C++ compiler inlines method calls (739956).
  • iOS/IL2CPP: Set default stack size to 1MB to match Mono behavior (733799).
  • MacOSX Standalone: Fixed Fullscreen Window mode freeze on El Capitan (10.11) (737716).
  • Metal: Fixed shader translation of matrix+scalar, matrix-scalar, matrix/scalar operations (693714).
  • UI: Fixed issue that caused FontUpdateTracker to add an additional RebuildForFont handler whenever a Text component was enabled using a font with no other active Text components using that font (687059).
  • Windows 10: Fixed incorrect display of Korean characters on Windows 10 (if Korean language pack is not installed) and Windows Phone 10; Unity will now fallback to "Malgun Gothic" font (746437).
  • Windows: SystemInfo.operatingSystem returns correct value on Windows 10 machines now.
  • WWW: Fixed handling of filenames with non-latin characters (572394).

Revision: 9c73fd3cda99

Changeset: