Unity 4.6.3

The Unity 4.6.3 release brings you some improvements and 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

Features

  • iOS: Added Metal rendering support. By default Metal will be used on capable devices. You can force graphics to be OpenGL ES 2.0/3.0 only in player settings.

Improvements

  • Asset Loading: Added names of affected assets to the error message when a hash collision occurs while generating asset bundles.
  • BlackBerry: Passport device now supports landscape orientation.
  • Documentation: Fixed broken links, particularly in UI docs.
  • Documentation: Updated documentation for iOS 64-bit and UI.
  • iOS: Added launch screen support for iPhones.
  • iOS: Added PlayerSettings.shortBundleVersion which is linked to the CFBundleShortVersionString stored in the Info.plist file; this relates to short public version string. PlayerSettings.bundleVersion can now be used for full incremental build version and is linked to CFBundleVersion.
  • iOS: Allow to set compile flags for already existing files in Xcode API.
  • iOS/IL2CPP: Added support for async delegates (BeginInvoke/EndInvoke).
  • iOS/IL2CPP: Disabled Script Debugging option when building iOS projects with IL2CPP scripting backend.
  • iOS/IL2CPP: Implemented .NET classes: for ThreadPool, Asynchronous Sockets, WebRequest.
  • iOS/IL2CPP: Optimize methods that use string literals and memory used for string literals.
  • Shaders: Added UNITY_NO_SCREENSPACE_SHADOWS, UNITY_NO_RGBM, UNITY_NO_DXT5nm macros; better to check for these instead of hardcoding checks for "GLES or GLES3" and similar.
  • Shaders: MRT support on OpenGL ES 2.0 via GL_EXT_draw_buffers.
  • Shaders: Support for GL_EXT_shader_framebuffer_fetch. If you have a pixel shader with an "inout" color, it gets translated to use shader framebuffer fetch on GLES2/GLES3/Metal. Use UNITY_FRAMEBUFFER_FETCH_AVAILABLE macro in shaders to conditionally enclose that.
  • UI: Exposed IsAddedToManager on Behaviour.
  • UI: Improved ordering for the EventOrdering.
  • UI: Optimized adding/removing Graphics to a Canvas. It should be much cheaper to enable and disable Graphics now.

iOS 64 bit / il2cpp fixes

A whole bunch of fixes were done for initial iOS 64 bit support (released in 4.6.2):

  • Break IL instruction is now a no-op instead of a crash.
  • Don't allow to select ARM64 architecture when using Mono scripting backend.
  • Don't include .NET metadata into the binary.
  • Ensure that the HideInInspector and ResourceRequest types are not stripped so they can be used if necessary.
  • Fixed an issue with Socket.Poll, where socket instances where not removed from the list if inactive.
  • Fixed Application.RequestUserAuthorization not working.
  • Fixed a problem with generic classes where the generic type argument lives in a different assembly from the type definition.
  • Fixed array of interfaces also being marked as interfaces.
  • Fixed Attribute.GetCustomAttribute crash.
  • Fixed C++ compile error for marshaled types.
  • Fixed C++ compile error for methods with two or more generic arguments of the same type.
  • Fixed C++ compile error when there's a struct array field in a marshalable struct that is marshaled as ByValArray.
  • Fixed C++ compile error when using Interlocked.CompareExchange/Exchange with null.
  • Fixed code generation for arrays of System.IntPtr, as well as IntPtr passed by reference.
  • Fixed code generation for generic methods with generic instance type constraints.
  • Fixed code generation for leave instructions jumping out of multiple exception handlers; fixes crash in Parse libraries.
  • Fixed code generation for unsafe structs with fixed fields.
  • Fixed crash in some cases when using ILeaderboard.
  • Fixed crash when calling GetCustomAttributes() and one of the methods happened to have a [DllImport] attribute.
  • Fixed CustomAttributes on constructors and method parameters.
  • Fixed deserialization of Dictionary.
  • Fixed Enum.IsDefined.
  • Fixed incorrect stripping in some cases when inheriting classes with interfaces.
  • Fixed issue with two dimensional arrays.
  • Fixed lock statement code generation when wrapping a try/catch statement.
  • Fixed memory corruption when using AssemblyName.
  • Fixed MethodInfo.ReturnParameter.
  • Fixed multiple Cryprography library issues.
  • Fixed RakNet being unavailable on IL2CPP, causing linker errors.
  • Fixed some race conditions in the low level threading primitives.
  • Fixed Type.GetNestedTypes() crash.
  • Fixed unsigned storage types for CustomAttributes.
  • Get the correct method to invoke via a delegate that points to an interface method.
  • Handle LdToken IL instruction correctly.
  • Handle non-ASCII characters in names.
  • Implemented dynamic library loading.
  • Implemented FieldInfo.GetRawConstantValue.
  • Implemented marshaling of fixed size strings as fields of structs and classes.
  • Implemented support for StructLayout and FieldOffset attributes in managed code, when not using for PInvoke.
  • iOS Internal profiler is now working on IL2CPP.
  • Make JsonFX library work with stripping.
  • Make reflection on constant fields work (with the exception of string, for which support is pending).
  • Never use microcorlib for iOS/IL2CPP.
  • Nullable now works correctly when being cast to/from object or T.
  • Prevented a duplicate symbol linker error for projects that use zlib in a static library by renaming the zlib symbols exported from the iOS/IL2CPP version of zlib.
  • Prevent the error "Cannot get stack type for Item" when "Item" is a type nested in a generic type.
  • Reduced the maximum depth to which IL2CPP tries to inflate generics. This fixed an issue which caused IL2CPP to never finish on certain C# patterns.
  • Runtime now attaches to native thread automatically if it's being called into from native code through reverse P/Invoke.
  • Support attributes that have arrays of System.Type arguments.

Other Fixes

  • 2D: Detect when Sprite.Create is called with an invalid rectangle.
  • 2D: Fixed sprite UV calculation when mipmapped NPOT sprites were used for sliced UI elements.
  • AI: Fixed crash when exceeding maximum polygon count in a tile (4096).
  • AI: Fixed no result when calling NavMesh.SamplePosition with infinity range argument.
  • AI: NavMeshObstacle carving tessellation fixes.
  • AI: Prevent occasional hang when path is requested to an invalid position (degenerate values).
  • Android: Added support for ATC decompression on x86.
  • Android: Fixed black screen when using some ImageEffects on Adreno 2xx devices.
  • Android: Fixed crash on some NullReferenceExceptions.
  • Android: Fixed TextureAtlasses with only RGBA4444 textures.
  • Animation: Fixed animation event not always fired when they are at the limit of transition end.
  • BlackBerry: Deploy tools on OSX now have execute flag set properly.
  • Deployment Management: Prevent simultaneous launches of Unity loading wrong project.
  • Editor: Fixed occasional crash when switching between DX9 and DX11 in the editor.
  • iOS: Fixed a crash due to unaligned memory access.
  • iOS: Fixed a crash in physics code on iOS 6.x and older.
  • iOS: Fixed a typo in UnityRegisterMainViewControllerListener().
  • iOS: Fixed Chinese/Japanese keyboard dismissing itself when scrolling suggestions on iPhone.
  • iOS: Fixed crashes on iOS 5 devices.
  • iOS: Fixed performance drop for iPhone 6+ in Zoomed Mode.
  • iOS: Fixed sound stopping to work when using OnAudioFilterRead.
  • iOS: Fixed the issue where Unity doesn't check if startUnity() has been called.
  • iOS: Fixed various issues with Xcode project handling.
  • Linux: Fixed "fullscreen to native resolution" for window managers that resize the window many times while full-screening.
  • Oculus Plugin: Fixed editor crash when trying to open a project with Oculus Plugin present and an issue with Plugins not being detected if moved in the Plugins folder.
  • Physics: Changing only Z position of an object which has a Rigidbody2D component no longer disturbs its X/Y interpolation.
  • Scripting: Fixed issue in Mono that threw "Mono.Security.Protocol.Tls.TlsException: Bad record MAC" exception.
  • Scripting: Fixed plugin verification crash on reload/shutdown.
  • Scripting: Fixed regression in StopCoroutine(Coroutine) error message.
  • Scripting: Fixed rare crashes on Webplayer which is most likely to happen on x64.
  • Shaders: Fixed some blending modes (e.g. One Zero, Zero Zero) only working in editor.
  • UI: Disabling an InputField clears the caret data now.
  • UI: Fixed a memory leak with Text objects.
  • UI: Fixed an issue where the ObjectField was not configured to look at the correct time.
  • UI: Fixed an issue with calling disabled from OnEndEdit.
  • UI: Fixed a render-to-texture issue of UI elements.
  • UI: Fixed keyboard not displaying on mobile devices.
  • UI: Fixed menu items in GameObject > UI menu not having spaces between words. They now match component names as shown in the Inspector and in the Component menu.
  • UI: Fixed screen space camera canvas using a uninitialized camera.
  • UI: Fixing issue with setting InputField.value on mobile devices.
  • UI: Make “ignore parent group” work properly with selectable and Graphic.
  • UI: Maximum allowed internal font size (after pixels per unit have been applied) is now clamped to a maximum of 1000 to prevent majority of cases of the font rendering becoming very slow.
  • UI: Prevent characterCountVisible from getting the length of a null string.
  • UI: Prevent deleting selection from calling OnValueChanged multiple times.
  • UI: Prevent InputField caret from positioning based on layout.
  • Webcam: Fixed webcam detection on x86 first time creating WebCamTexture with empty device name.
  • WebPlayer: Unity 2.x content is no longer supported on modern OSes (Windows 8+, Mac OS X 10.9+).
  • Windows Standalone: Adding/removing game controllers should be detected more reliably now.
  • Windows Standalone: Fallback to XInput 1.0 when XInput 1.3 is not installed on the system.
  • Windows Store Apps: Fixed architecture specific plugin copying.
  • Windows Store Apps: Fixed InvokeOnAppThread/InvokeOnUIThread from scripts.

Changeset: