Unity Changelog

New in version 4.6 RC 3

November 22nd, 2014
  • Improvements:
  • Documentation: Update scripting reference styling
  • Changes:
  • UI: Change the default mode of the Standalone module to be Mouse as it allows both mouse + KB at the start of a scene load.
  • Fixes:
  • Mecanim: Fix linear scale blending for additive layers.
  • Mecanim: Fixes crash when previewing transitions on an Animator with UnscaledTime update mode.
  • Physics: Fix issue where 2D colliders break when used as prefab children.
  • UI: Removed spelling error enum value from EventTriggerType enum.
  • IMGUI: Fix issue where sometimes it was impossible to not select the last character in an Input Field.

New in version 4.6 RC 2 (November 22nd, 2014)

  • Fixes:
  • 2D: SpritePacker will not crash when packing textures with a pending reimport.
  • Editor: Fix SceneView Rect Selection interfering with some tool handles.
  • Mecanim: Fixed crash when creating an AnimationClip on a humanoid rig.
  • UI: Fixed typo in EventTriggerType.Submit and marked old name as obsolete.
  • UI: Fixed InputField bug that text does not visibly update when the text property is set from scripting.
  • UI: Fixed hard crash when any stripping was enabled.
  • UI: Fixed error message when instantiating a prefab with a input field at runtime

New in version 4.6 RC 1 (November 7th, 2014)

  • FEATURES:
  • Added Input.touchSupported API: it tells whether the device on which application is currently running supports touch input.
  • Android: Support for x86 as a build target.
  • Android: Fat binary support (x86+ARMv7). Now the new default.
  • IMPROVEMENTS:
  • Android: Support for profiling Intel GPU using the Unity Editor.
  • Android: Added support for BGRA textures.
  • Editor: Added SerializedProperty.enumDisplayNames that return the names for enum values as they're shown in the Inspector.
  • UI: Add missing UI system callbacks to EventTrigger.
  • UI: New default controls look:
  • Doubled resolution of sprites in default UI elements so they can be displayed up to scaleFactor 2 without being pixelated.
  • Updated graphics for default UI elements with thinner outlines and new sprite knob graphic as well as updated checkmark graphic.
  • Improved layouts in standard UI elements in GameObject menu.
  • Changed default UI colour and transition state colors.
  • UI: InputField improvements:
  • Tweaked InputFieldEditor, reordering a few elements and adding spacing both for organisation of InputField specific fields and to match spacing in other Selectable controls.
  • Removed concepts of StartingText and ActiveTextColor. Added concept of Placeholder graphic (for example a Text) that's enabled when the text string is empty.
  • Changes to the Text property are now visible in Edit Mode.
  • Always ensure InputField caret is initially visible after clicking since it can otherwise be confusing for a moment.
  • Added new contentType property to InputField which is used to indicate content type at a more high level. It controls lineType, inputType, keyboardType and characterValidation, so these don't need to be shown in the Inspector most of the time.
  • Renamed validation property to characterValidation to make it more clear it only validates per-character and not as a whole.
  • Renamed characterValidation type Float to Decimal.
  • Removed characterValidation type Username since it's unclear what that means.
  • Changed characterValidation type Name to accept all letters (as according to .Net's char.IsLetter() method) rather than just A-Z.
  • Added characterValidation type EmailAddress.
  • Renamed caretBlinkSpeed to caretBlinkRate and also inverse it's meaning to a higher value makes it blink faster.
  • Changed default caretBlinkRate from 1.0 to 1.7, which is more in line with common OS defaults.
  • Improved handling when changing the blink rate while the caret is active.
  • Show caret blink rate as a slider in the Inspector.
  • New text selection color that has higher alpha, is more defined as well as being more in line with OS standards.
  • Fixed issue that scrolling would scroll such that caret remained on last of visible lines (for multi-line) or after last character (for single-line) rather than only changing scrolling if needed.
  • Fixed issue where text would not scroll up when deleting characters until the caret went up beyond the top visible line.
  • While dragging selection, make selection go to text start if above first line and to text end if below last line, and make it update the selection also while dragging outside the text bounds.
  • Improved behavior of arrow keys in text editing in InputField.
  • Prevent distracting hover and pressed transitions in InputField while editing text.
  • Make select all on focus actually work, and do it for multi-line too.
  • Don't scroll to end on focus.
  • Make scrolling (while dragging selection beyond visible lines or characters) faster and even faster horizontally.
  • CHANGES:
  • Editor: Write warning to the console when setting parent of RectTransform using the parent property rather than SetParent, since it's a cause of widespread confusion and support requests. For those who actually want this functionality, they can use SetParent with worldPositionStays set to true, which does the same thing as the parent property.
  • Core: Changed RectTransform.reapplyDrivenPropertiesInEditor delegate to reapplyDrivenProperties, which now apply to the driven RectTransform rather than the driver, and works at runtime too.
  • UI: Renamed DrivenTransformProperties PositionZ to AnchoredPositionZ and Added combined flags AnchoredPosition3D. This ties in with new anchoredPosition3D property on the RectTransform.
  • UI: Removed builtin sprite resources for popup graphics since there is no popup control is included with 4.6 and the graphics were outdated.
  • UI: Added utilities to flip RectTransform layout around axis or flip axes, and apply this functionality when changing slider or scrollbar direction in the Editor, so layout doesn't have to be changed manually.
  • UI: Removed ReferenceResolution and PhysicalResolution components since they have been replaced by CanvasScaler.
  • UI: Make DrivenRectTransformUndo class internal as it was not meant to be exposed.
  • UI: Renamed InputField onSubmit to onEndEdit to avoid confusion since it's also invoked when user clicks away from InputField.
  • UI: Default the UnityEvent creation state to 'Runtime Only' as it is the general case.
  • UI: InputField.value has been changed to ".text" and ".text" is now ".textComponent" to be more consistent with accessing information from the Text component
  • FIXES:
  • Windows Phone 8.1: Fixed an issue which caused InputField and GUI.TextArea to always receive capital letters from the on screen keyboard.
  • Android: Disabled shadows for Intel PowerVR devices to avoid graphics artifacts.
  • Windows Phone 8.0: Setting TouchScreenKeyboard.text will no longer reset caret position.
  • 2D: Unity will not crash if a mesh is dragged onto a SpriteRenderer.
  • Animation: Changing the animated property to be Rect Transform Scale and trying to transition between 0 and 1 fails
  • MacOSX: Fixed scroll rect mask in fullscreen
  • Windows Phone 8.1/Windows Store: Fixed UI button staying highlighted even after touch ending.
  • Editor: Version control will no longer try to version Unity's defaults assets and thus will not crash.
  • UI: on touch screen devices, first capital letter InputField validation now works correctly.
  • Windows Phone 8.0: InputField with validation no longer reverses the text string.
  • 2D: NPOT sprites with mipmaps will not get parts cut-off when used on platforms not supporting NPOT textures.
  • Core: Fixed Canvas screen space camera mode making the canvas lag behind one frame when camera is moved in LateUpdate.
  • Core: Recalculate auto-layout when RectTransforms are enabled or disabled.
  • UI: Fixed Toggle having its ToggleGroup set to none when disabled.
  • UI: Fixed ToggleGroup.SetAllTogglesOff not doing anything when allowSwitchOff was not enabled. The allowSwitchOff setting is only meant to disallow the end user from switching a toggle off, not disallow doing it from scripting.
  • UI: Don't notify ToggleGroup when switching toggle that's not active or not enabled.
  • UI: With errors in ToggleGroup about Toggle not being part of ToggleGroup when it was.
  • UI: Fixed Slider not getting pressed transition plus simplify code.
  • UI: Fixed regression where Canvas scaleFactor and referencePixelsPerUnit would be reset on recompiling, and would not be set correctly if disabling and then enabling the CanvasScaler.
  • UI: Fixes to Text component and default controls that help prevent text from disappearing at certain Canvas scale factors.
  • UI: Fixed warning being shown in SelfControllerEditor about parent LayoutGroup even when group is disabled.
  • UI: Fixed nullref in LayoutGroup when group have children without RectTransform.
  • UI: Only show RectTransform position and size data in Inspector in less intuitive way if position or size is driven, not just if any value is driven.
  • UI: Prevent rounding errors from accumulating when changing RectTransform anchors.
  • UI: Fixed ScrollRect scrolling by itself after being enabled due to bounds being calculated in LateUpdate before the layout has been calculated.
  • UI: Do not send 'select' event from TouchInputModule (make it the same as Standalone)
  • UI: Do not reregister the graphic on the canvas if the graphic is disabled. That is only add and remove it during enable and disable.
  • UI: Fix issue with scroll rects transform being accessed before OnEnable has been called.
  • UI: Fix issue with graphic update list incorrectly being recreated
  • UI: When removing a CanvasGroup reset the settings and issue CanvasGroupChanged callback.
  • UI: Remove allocs in InputModules by refactoring data structures
  • UI: Fix deselection handling (when you click on nothing deselect the current thing)
  • UI: Fix issue with SelectGameObject being called recursively. Do not allow this to happen as it can corrupt internal state of selectable objects.
  • Core: Fixed after removing a RectTransform the GameObject not move anymore.
  • Editor: Prevent crash when loading a corrupted layout file.
  • Editor: Fixed issues with multi-edit on UnityEvent PropertyDrawer.
  • Editor: Fixed some scene-view shaders for DX11.
  • Core:Multiple FormerlySerializedAs attributes now work properly.
  • Core: Fixed FormerlySerializedAs on fields inside arrays.
  • UI: Fixed IndexOutOfRange exception on mac caused by input field
  • UI: Sending Inputfield onValueChanged when characters are removed
  • UI: Inputfields Text is now above the highlight selection to make text clearer
  • UI: Pressing cancel (esc) no longer calls OnSubmit and text will be reverted to original before typing
  • UI: Set the inputfield caret back to zero on deselect so the first words are visible
  • UI: Creating UI element no longer show warning message about using SetParent
  • UI: Prevent moving the inputfield caret on mobile devices with hideMobileInput = true

New in version 4.5.5 Patch 4 (November 7th, 2014)

  • Improvements:
  • Physics 2D: Added 'Static Collider Shapes' to profiler for 2D physics.
  • Serialization: Randomize fileIDs for objects in prefabs to lower the chance of merge conflicts
  • Fixes:
  • (600514) - Android: Expanded previous crash fix to all Adreno 3xx series devices.
  • (609901) - Debugger: Fixed crash when stepping into a breakpoint on 64-bit OSX standalone player.
  • (none) - Editor: Fixed version control plugin and shader compiler stopping prematurely sometimes.
  • (none) - iOS: Added support for iPad Mini 3 and iPad Air.
  • (635594) - iOS: Fixed severe visual issues when setting Screen.orientation when autorotation is disabled.
  • (638841) - Linux: Don't report button/axis data when input field has focus.
  • (638841) - Linux: Fixed numeric keypad input.
  • (633885) - OSX: Fixed File limits not being set to Maximum amount and Defaulting to 256 open files.
  • (644965) - Physics 2D: PhysicsMaterial2D bounciness now has an upper limit of 100000 rather than 1.
  • (643425) - Shaders: Fixed support for more than 16 textures on D3D11.
  • (none) - Standalone: Fixed random crash in 64-bit standalone players.
  • (641919) - Windows Store Apps: Using Winmd C++ plugins should work correctly now.

New in version 4.5.5 Patch 3 (October 31st, 2014)

  • Improvements:
  • Documentation: Styling for links is less flashy now.
  • Physics 2D: Renamed 'Physics2D.deleteStopsCallbacks' to 'Physics.changeStopsCallbacks' to better represent its purpose (old property is now obsolete).
  • Fixes:
  • (639299) - Android: Added splitting of level files in APK to fix slow loading problem.
  • (604438) - Android: Avoid reading expensive metrics in DisplayInfo more than once per frame.
  • (600514) - Android: Fixed crash on certain Adreno HW with OS version 4.4.2 or more recent 4.4.x.
  • (none) - Android: Fixed crash on xperia play.
  • (635504) - Android: Fixed forwarding of input events to Java when Unity is paused but activity is still running.
  • (none) - Android: Fixed frame rate on tegra devices when doing GPU profiling.
  • (544272) - Android: Workaround for corrupted font textures on older Adreno drivers.
  • (641698) - Direct3D: Add black bars in fullscreen mode to maintain aspect ratio.
  • (631593) - Editor: Fixed crash on scene load when prefabs have unsaved child objects.
  • (641698), (633449) - Graphics: Fixed custom cursors when hovering over black bars in fullscreen mode.
  • (616670) - Graphics: Fixed incorrect sprite tangent handling on ARM NEON capable devices.
  • (642120) - iOS: Fixed 2nd stage splash screens on iPhone 6+.
  • (635601) - iOS: Fixed crash in Resources.UnloadUnusedAssets after GameCenter login.
  • (none) - iOS: Fixed splash images for iPhone6+ in display zoom mode.
  • (641844) - iOS: Removed unnecessary error messages in GameCenter API.
  • (597261) - Mecanim: Fixed AnimatorController not being built properly when used in prefabs.
  • (641551) - Mecanim: Fixed AnyState transitions disappearing in some specific cases.
  • (639598) - OpenGL: Fixed fullscreen rendering on Windows.
  • (636761) - Physics 2D: Ensure that Physics2D.Raycast(all) does not produce an infinite end-point resulting in nothing being hit.
  • (642989) - Physics 2D: Fixed bad Rigidbody2D interpolation when changing body position via a Transform component change.
  • (586085) - Scripting: Fixed stack overflow in class loader.
  • (633417) - Scripting: Fixed Win32_IN6_ADDR.
  • (576809), (575646) - TouchInput: Switched timestamps from ms to us internally, to avoid 0-length delta times.
  • (640239) - Version Control: Allow changing credentials and reconnect even when a connection is already being established.
  • (none) - Version Control: Get rid of double messages in the console windows from a range of VCS commands.

New in version 4.5.5p2 (October 30th, 2014)

  • Fixes:
  • (633671) - Editor: Add support for importing .DDS cubemaps.
  • (none) - GLES: Sphere map fixes.
  • (566255) - Graphics: Fixed occasional crashes when switching the graphics device. Happens in editor when toggling between DX9 and DX11, or on Windows Phone when resuming the app.
  • (626431) - iOS: Don't count the size of the executable twice in the detailed memory snapshot.
  • (635981) - iOS: Fixed player remaining paused after interstitial ads in certain cases.
  • (634167) - iOS: Fixed click-through in on-screen keyboard.
  • (639762) - iOS: Fixed crash when Game Controller gets attached on iOS 8.
  • (637946) - iOS: Fixed debug log spam in Social API.
  • (639549) - iOS: Fixed iAD Show method crash when calling it while Ad is not yet loaded.
  • (640560) - iOS: Fixed WWW crash.
  • (none) - iOS: Xcode6 fixes: OSX no longer have bgra_ext, allow ios8 sdk.
  • (638453) - Mecanim: Fixed transitions being duplicated when dragging StateMachines into StateMachines.
  • (633470) - Mecanim: Show an error when transitions to state that doesn't exist are found.
  • (637553) - Physics2D: Changing 2D collider state between trigger and non-trigger modes now maintains contact state (enter/stay/exit callbacks are correct).
  • (637725) - Physics2D: CircleCollider2D editing handles now show in the correct location when X/Y rotation is involved.
  • (640200) - Physics2D: Provide option to turn on/off the ability to detect a collider that overlaps the start of any 2D line/ray cast
  • (636745) - Physics2D: RaycastHit2D distance is now correctly calculated.
  • (635891) - Physics2D: ReferenceAngle for both HingeJoint2D and SliderJoint2D are now maintained when the components are disabled then re-enabled.
  • (640154) - Physics2D: Rigidody2D.MovePosition() no longer causes gravity to be ignored when in constant use.
  • (none) - Shaders: Fixed view*projection matrix (UNITY_MATRIX_VP) sometimes getting out of sync.
  • (625731) - Windows Phone 8.1: Fixed touchscreen keyboard reappearing after pressing back button while GUI.TextArea has focus.
  • (633449) - Windows Player: Fixed custom cursors not showing up correctly in fullscreen mode.
  • (633049) - Windows Player: Fixed window being always on top after switching from DX9 fullscreen to desktop windowed mode.

New in version 4.5.5 (October 30th, 2014)

  • OpenGL ES 3.0 for everyone:
  • Unity 4.5 adds OpenGL ES 3.0 support for the latest iOS devices. What’s more, we’ve brought a bunch of improvements to ES 3.0 support generally, including much better graphics level selection in player settings, support for 3D textures and a number of stability and performance fixes.
  • Smooth and natural 2D physics:
  • There are lots and lots of 2D physics advances to benefit from in 4.5. We’ve dug around and changed some things in Box2D as well as adding functions that bring 2D physics better into line with the functions and conventions of our 3D physics system.
  • Faster scene loading:
  • We’ve introduced a significant performance improvement by reworking MonoBehaviour serialization. From now on, your prefabs will instantiate way faster. As well as serializing classes, you can now also serialize structs, making it easier to be friendly to the garbage collector.
  • Shader workflow boost:
  • No more coffee breaks while waiting for Image Effects, Marmoset Skyshop or other advanced shader packs to import. Our all-new shader importer makes things much, much faster. Plus, we’ve also improved shader errors reporting, and made debugging surface-shader-generated code so much easier.
  • Rapid repairs:
  • The Module Manager now allows us to ship hotfixes across all the mobile platforms we support. If, for example, an OS update has unfortunate consequences for Unity installs, we’ll be able to address any issues at double-quick speed, meaning you won’t have to wait for the next full Unity release to access fixes. Read more about how you can get Unity bug fixes faster.
  • Joint gizmos, wheel joints and API sophistication:
  • Amongst many other things, our 2D tools now feature a wheel joint for your vehicular pleasure and some super-amazing 2D joint gizmos, plus you’ll find that we’ve added sophistication and flexibility to the API.
  • Drag as you play:
  • As always, our Beta group have been a great help in ensuring release quality. One feature they particularly loved in 4.5 was the ability to drag 2D rigidbody objects around whilst in the editor’s play mode. Drag, drop and play to your heart’s content!
  • Unity Remote iOS upgrade:
  • Unity Remote is our playtesting 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 is available free of charge from Google Play and the App Store.
  • Stereoscopic rendering for DirectX 11:
  • Many of today’s displays have a 3D feature and ship with 3D glasses, but few games are designed to take advantage of this. In Unity 4.5 we’ve added a Pro-only function that automates the process of building stereoscopic content for any Windows appliance running DirectX 11, making it much easier to build stereoscopic games.
  • Sparse Textures:
  • Want massive, detailed textures without using huge amounts of memory? With Sparse Textures, textures are broken into “tiles” and can be loaded and unloaded as needed. In Unity 4.5, we’re exposing this DirectX 11.2 hardware capability, so you can build your own massive texture systems that use it.
  • Improvements:
  • Editor: Added additional logging when the MonoDevelop script editor was opened on OSX.
  • iOS: Added support for iPhone 6 & iPhone 6 Plus.
  • iOS: Display the number of finished files in AOT cross-compile progress bar.
  • Linux: Implemented screen-fullscreen command line option.
  • OSX: Implemented show-screen-selector command-line option.
  • Physics: Show inspector warning when a 2D collider removes generated collision shape(s) because they fail verification. This supplements the existing warning when no collision shapes are present.
  • Shaders: Improved performance of importing complex surface shaders (with many multi_compile directives).
  • Shaders: Improved performance of shader compilation for OpenGL platforms.
  • Fixes:
  • Android: Android TV - Fixed uses-feature attribute in manifest that could require touchscreen.
  • Android: Fixed delay when resuming game from paused state.
  • Android: Fixed flickering screen on resume.
  • Android: Added missing implementation of UnityMemoryBarrier()
  • Android: Fixed crash on application resume on Adreno devices with Android 4.1.1 or 4.1.2.
  • Android: Preventing black frame to be displayed when on-screen keyboard appears/disappears.
  • Android: Export now works for projects that use UnityPlayerActivity or UnityPlayerProxyActivity.
  • Asset Import: Recompile scripts synchronously when the -buildTarget parameter is used.
  • Core: Fixed the "Failed to initialize unity graphics" error when using the -no-graphics flag in OS X
  • Direct3D 11: Unity will now correctly fall back to no MSAA depth textures if the GPU does not support ones with MSAA.
  • Documentation: Fixed rendering for richText.
  • Editor: Fixed word wrapping in the detail area of the console.
  • Editor: Handle an intermittent failure in CoCreateInstance during the Visual Studio launch process.
  • Editor: Open a script in the correct version of Visual Studio when the script is already open in a different version.
  • Editor: Fixed selected wireframe not rendered if object's shader has GrabPass as the first pass.
  • Editor: Use External Editor argument expansion in undocumented API.
  • Editor: Fixed an issue whereby dragging a prefab into hierarchy from project view was not selected automatically.
  • Editor: Don't pass out incorrect PropertyHandler on first call to GetHandler.
  • Flash : Empty project no longer has (harmless) errors in the log.
  • OpenGL ES 2: Fixed issues with native plugin called in OnPreRender .
  • Graphics: Send kGfxDeviceEventInitialize to native plugins if renderer changes.
  • Graphics: Fixed light culling with custom projection matrix.
  • Image Effects: Fixed Image filters targeting a render texture when a camera doesn't clear the color buffer.
  • Image Effects: Fixed Fast Bloom rendering upside down on Direct3D when anti-aliasing was used (reimport Image Effects package to get the fix).
  • iOS: Adaptively increase AOT build timeout to fix builds on large projects.
  • iOS: Do not run excessive number of mono AOT compiler instances.
  • iOS: Fixed Xcode 6 GM build & run support.
  • iOS: Fixed Xcode 6 GM Simulator support.
  • License: Give permissions to Users group on Windows to modify/write the license .ulf file, after Unity was activated by an administrator.
  • Linux: When using "Default is fullscreen" and "Default is native resolution" on a multidisplay system, store the resolution pref from the actual window size instead of the full desktop resolution.
  • Manual: Update documentation for player command line arguments.
  • Mecanim: Fixed trigger parameter consumption when used by multiple layers.
  • OSX: Now GameKit is loaded dynamically, it should help with Mac App Store submissions for games, which are not using Game Center.
  • OSX: Application.persistentDataPath changed from ~/Library/Caches/ to ~/Library/Application Support/
  • Physics: 'OnMouseDown' and 'OnMouseUp' callbacks for 3D physics now don't take priority over 2D physics, they can run simultaneously.
  • Physics: 'OnMouseDown' and 'OnMouseUp' callbacks for both 2D and 3D colliders now correctly use camera near/far plane distance.
  • Scripting: Properly validate class constraint on generics with reference type constraint.
  • Shaders: Fixed #include processing that are nested in #ifdef blocks in surface shaders.
  • Shaders: Fixed faceforward() for OpenGL platforms.
  • Shaders: VFACE pixel shader semantic translates more properly to OpenGL platforms now (values of -1 or 1, not 0 or 1 like before).
  • Substance: Fixed regression where valid runtime cache data would not be used and ProceduralTextures would be needlessly recomputed.
  • Substance: ProceduralTextures are no longer corrupted when switching color space in the editor.
  • Substance: ProceduralTextures are no longer corrupted when switching the masterTextureLimit in the editor.
  • Substance: Textures generated from a cloned ProceduralMaterial now have the proper alpha channel.
  • Terrain: Now tree imposter image will render in correct color space.
  • Version Control: Disallowing moving/renaming version controlled files that are changed/checked out remote.
  • WebCamTexture: Uses the first webcam device by default on all platforms.
  • WebPlayer: Fixed WebPlayer Loading failure when UNITY_DISABLE_PLUGIN_UPDATES = yes.
  • Windows Phone 8.0: Fixed an issue which caused rendering from scripts not to work the same frame that back button was pressed on certain devices.
  • Windows Phone 8.0: Using image effects no longer distorts the image resolution.
  • Windows Phone 8.1: Fixed copying of 240% sized wide tile to final VS solution.
  • Windows Phone 8.1: TouchScreenKeyboard.visible no longer throws an exception if called before creating an actual keyboard.
  • Windows Phone 8.1: Unity no longer overrides 106x106 icon in final VS solution when a custom icon is placed there.
  • Windows Player: Fixed blank window appearing briefly before entering fullscreen mode.
  • Windows Store Apps: Fixed an issue which caused C# scripts to sometimes be included to wrong assemblies if "Debugging C# projects" checkbox was checked when building the project.
  • Windows Store Apps: C++ plugins are now correctly copied to output directory when using C++ project type.
  • Windows Store Apps: Unprocessed plugins are no longer included in Visual Studio pre-build event.
  • Windows Store Apps: Unity C# projects are referenced by project references instead of assembly references.
  • Windows Store Apps / Windows Phone: Fixed an issue which caused methods of WebHeaderCollection class throw exceptions
  • Windows Store Apps / Windows Phone 8.1: Fixed Screen.dpi to return physical screen DPI, instead of logical DPI.
  • Windows Store Apps / Windows Phone 8.1: Significantly reduces memory used by compressed audio.

New in version 5.0 Beta 9 (October 30th, 2014)

  • Graphics Features:
  • Shaders: Added UNITY_NO_SCREENSPACE_SHADOWS, UNITY_NO_RGBM, UNITY_NO_DXT5nm macros that are defined on corresponding platforms.
  • Shaders: Optimized shader compilation performance for OpenGL/ES platforms
  • Shadows: Added ability to control directional light shadow cascade split ratios. New UI in QualitySettings, and shadowCascade2Split / shadowCascade4Split properties in QualitySettings API.
  • Shuriken: Added a Circle emitter with an option to specify an arc.
  • Shuriken: Added a one-way Edge emitter.
  • Improved LODGroup. A "fade mode" can be set on each level and a value of "how current LOD be blended/faded to the next LOD" will be passed to shader program in unity_LODFade.x.
  • Dynamic batching can batch non-uniform scaled objects together when normals/tangents are unused. Helps with shadow caster batching, and unlit shaders.
  • Added MaterialPropertyBlock SetFloat/Vector/Color/Matrix/Texture functions. They add a value or replace an existing value.
  • Rendering code optimized to reduce amount of material SetPass calls. Reflection probes, light probes and lightmap UV transform state changes are now internally applied via MaterialPropertyBlocks without requiring a full SetPass. This reduces cost on the main thread to send commands to the render thread, and on the the render thread the driver overhead is reduced.
  • New built-in "Standard" shader:
  • Physically based shader, suitable for most everyday surfaces (metals, plastics, wood, stone etc.).
  • This is a default shader for newly created objects now. Most of Unity 4.x shaders were moved to “Legacy” shader popup menu.
  • Features driven by what you enable in the inspector (e.g. when no normal map assigned, the shader will internally use a faster variant without a normal map).
  • Approximate and optimized path for mobile & shader model 2.0.
  • Integrated Enlighten real-time global illumination (GI) technology, and improved lightmapping workflow:
  • Scene changes are automatically picked up and tasks are spawned to: precompute data for dynamic GI, and to calculate static lightmaps.
  • Runtime Dynamic GI at runtime for lights, bounce intensity can be specified on a per light basis
  • Runtime: Changes to lights marked as "Dynamic GI" and skylight changes are picked up automatically.
  • Emissive surfaces can emit lights into Dynamic GI at runtime. Emissive surface colors can be changed at runtime & affect static and dynamic objects in realtime.
  • Runtime: Material changes can be triggered via DynamicGI API.
  • Runtime: Lighting reacting to above changes is applied to static objects via lightmaps and to dynamic objects via light probes.
  • HDR workflow improvements:
  • HDR scene view. When main camera is HDR, then scene view is rendering in HDR as well, and using the same Tonemapper as the main camera.
  • Support for .hdr texture format importing.
  • HDR textures (from .exr/.hdr files) are automatically encoded into RGBM (0..8 range) format. Added option under Advanced import settings to control this behavior.
  • Reflection Probes:
  • New "ReflectionProbe" component that captures its surroundings into a cubemap. Cubemap is assigned to Renderers in the proximity from the probe and can be used to produce effect of the glossy reflections.
  • Reflection probes are baked similar to light probes, are stored as cubemap assets and specular convolution is applied to achieve high-quality glossy reflections.
  • Introduced default reflection cubemap in RenderSettings. It is passed to "unity_SpecCube" property of the shader. Ability to match default cubemap reflection to a skybox, and apply specular convolution for glossy reflections. (requires Pro)
  • Skybox and ambient improvements:
  • New scenes are now set with directional light, procedural skybox and a reflection probe by default.
  • Added "Skybox/Procedural" shader that allows setting up simple skies with ease.
  • Built-in Skybox shaders support HDR (RGBM encoded) textures.
  • Skybox materials can be assigned by drag-and-drop on the background in the Scene View.
  • Improved inspector preview & thumbnails of Skybox materials.
  • Default ambient has different sky/equator/ground colors.
  • Ability to match ambient to a skybox, and optionally extract directional light out of the skybox. (requires Pro)
  • Improved RenderSettings inspector in general; and renamed menu entry to "Scene Render Settings".
  • New "Deferred Shading" rendering path:
  • Single pass, multiple-rendertarget g-buffer shading.
  • Fully supported by the new Standard shader.
  • Overriding of DeferredShading (and DeferredLighting) shaders is in the UI now, under GraphicsSettings. Possible to even exclude the shaders from game build, in case you don't need them at all.
  • Surface shaders can generate code for new Deferred Shading rendering path. All 4.x builtin shaders got support for that. Note: currently does not take full advantage of deferred shading g-buffer data; will be improved.
  • Improved and extended cubemap workflow:
  • Renamed “Reflection” texture import type to “Cubemap”. Automatic detection of the mapping mode for spherical, cylindrical and 6 image layouts; removed 2 obscure spherical mappings which were rarely used.
  • Textures imported as cubemaps can use texture compression now!
  • Added specular and diffuse convolution options to cubemap textures.
  • Cubemap inspector was improved, can now show alpha channel & mipmaps properly; also understands RGBM encoded HDR cubemaps.
  • Improved seamless edge fixup.
  • Moved Cubemap menu entry from Assets into Assets | Legacy.
  • Meshes:
  • More than two UV coordinates! Up to 4 UVs are imported from model files; and Mesh class gained uv3 & uv4.
  • Non-uniformly scaled meshes no longer incur any memory cost or performance hit. Instead of being scaled on the CPU they are scaled and lit correctly in shaders.
  • MeshRenderer has a new additionalMesh property which lets you specify per-instance mesh data overrides. For example just color channels for one instance. This is currently used by Enlighten for per-instance UVs.
  • SpeedTree integration:
  • SpeedTree models (.SPM files) now can be recognized, imported and rendered by Unity. The workflow is very similar to other mesh formats like FBX.
  • SpeedTree features like smooth LOD transition, billboards, wind animation and physics colliders are fully supported.
  • SpeedTree models are selectable as tree prototypes on terrain.
  • Frame Debugger. See how exactly frame is rendered by stepping through draw calls. See http://blogs.unity3d.com/2014/07/29/frame-debugger-in-unity-5-0/ (requires Unity Pro).
  • Added scriptable "Command Buffers" for more extensible rendering pipeline:
  • Create command buffers ("draw mesh, set render target, ...") from a script, and set them up to be executed from inside camera rendering.
  • Command buffers can be executed from a bunch of places during rendering, e.g. immediately after deferred G-buffer; or right after skybox; etc. See UnityEngine.Rendering.CommandBuffer class.
  • Shadows: Added PCF (5x5) filtering for soft directional light shadows:
  • Pick it in Quality Settings.
  • We're considering maybe replacing the old "screenspace blur" with 5x5 PCF as the only built-in option, so feedback is welcome!
  • Shadows: in Forward rendering, directional light shadows are computed from camera's depth texture instead of a separate "shadow collector" rendering pass. Saves a bunch of draw calls, especially when depth texture is needed for other things anyway:
  • This means that LightType=ShadowCollector shader passes aren't used for anything; you can just remove them if you had any.
  • Camera’s DepthTexture is not generated using shader replacement anymore. Now it is generated using same shaders as used for shadowmap rendering (ShadowCaster pass types). Camera-DepthTexture.shader is not used for anything now.
  • Shaders: Build-time stripping of unused shader features, and shader variant compilation improvements:
  • Added #pragma shader_feature; very similar to multi_compile but unused ones are removed from the game builds. That is, if none of the materials use a particular shader feature variant, shader code for it is not included into game data.
  • #pragma shader_feature can be provided just one parameter, e.g. #pragma shader_feature FANCY_ON. This expands to two shader variants (first without the parameter, and second with the parameter defined).
  • Can specify vertex- or fragment-only shader variants. For example, #pragma shader_feature_vertex A B C will add 3x more shader variants, but to vertex shader only.
  • Underscore-only names in shader_feature and multi_compile are treated as "dummy" and don't consume shader keyword names.
  • Build-time stripping of unused lightmap shader variants. E.g. if you don't use directional lightmaps in any of your scenes, then shader variants that handle directional lightmaps will be removed from game build data. No need to manually add "nolightmap" and friends to shader code now.
  • Shaders: Single CGPROGRAM block can target multiple "shader models" at once. For example, you can base it for SM2.0, but have fancier multi_compile variants that require SM3.0. Syntax:
  • #pragma target 3.0 // base is SM3.0
  • #pragma target 4.0 FOO BAR // FOO or BAR require SM4.0
  • Shaders: Custom Shader GUI can now be defined by implementing the IShaderGUI interface instead of deriving from MaterialEditor. Using this approach makes the custom shader GUI show within the inspector for Substance materials.
  • Shaders: Massively improved shader loading performance, and reduced memory consumption:
  • By default, internal shader variants are only loaded when actually needed (typically a lot of shader variants are never actually needed).
  • Added ShaderVariantCollection asset type for ability to manually preload/warmup shader variants, to avoid hiccups later on. This is like Shader.WarmupAllShaders, done in a better way.
  • Editor can track shaders & their variants used in scene or play mode, and create ShaderVariantCollection out of them (button in Graphics Settings).
  • Graphics Settings have a list of ShaderVariantCollection assets to preload at game startup. Can also warmup them from a script.
  • Animation Features:
  • State Machine Behaviours:
  • StateMachineBehaviours is a new MonoBehaviour-like Component that can be added to a StateMachine state to attach callbacks
  • Available callbacks are : OnStateEnter, OnStateExit, OnStateUpdate, OnStateMove and OnStateIK.
  • Animator.GetBehaviour(). This function return the first StateMachineBehaviour that match type T
  • StateMachine Transitions:
  • Can now add higher level transitions from StateMachine to StateMachine
  • Entry and Exit nodes define how the StateMachine behaves upon entering and exiting.
  • Asset API:
  • Allows to create and edit, in Editor, all types of Mecanim assets ( Controllers, StateMachines, BlendTree etc.)
  • Added API for Avatar, Motion Nodes, Events and Curve in the Model Importer
  • Direct Blend Tree:
  • New type of blend tree to control the weight of each child independently
  • Root Motion authoring:
  • Can convert animation on the parent transform into Root Motion (Delta Animation)
  • Animator Tool revamp:
  • Improved workflow
  • Re-orderable layers and parameters
  • Transition interruption source:
  • Replaces the Atomic setting on transitions. You can now decide if a transition is interrupted by transitions in the source state, the destination state or both.
  • Also possible to be interrupted by transitions independently of their order by disabling "ordered interruption" setting on transitions.
  • Added Animator Gizmo that show up upon selection: you can see effectors, mass center, avatar root and pivot.
  • IK Hint for knees and elbows.
  • Improved animation previewer camera:
  • Camera can now Pan, Orbit and Scale with the same control than the scene viewer.
  • The camera can also frame on the previewed Object with shortcut F and frame on the cursor position with shortcut G.
  • AnimationEvents are now fully editable at runtime, see AnimationClip.events to query, add and delete them at runtime
  • Keep last evaluated value when a property stops to be animated:
  • Activated per State
  • By default it is writing default value when a property stops to be evaluated
  • Linear Velocity Blending:
  • Advanced feature for users requiring linear speed interpolation during blending.
  • Root Motion Speed and Angular Speed now blend linearly in Blend Trees, Transition or Layers
  • Choose between Linear Velocity Blending or Linear Position Blending in Animator with animator.linearVelocityBlending. It is false by default.
  • You can now get Animator root motion velocity and angular velocity with animator.velocity and animator.angularVelocity
  • Audio Features:
  • Added a new AudioMixer asset type! Create one or more AudioMixers in a project:
  • Use the Audio Mixer window to create complex mixing hierarchies and effect processing chains.
  • Mix and master all audio within Unity by tweaking all parameters during edit mode and play mode.
  • VU meters for the outputs of all AudioGroup and at attenuation points within the AudioGroup.
  • Allow AudioSources to route their signal into any AudioMixer.
  • The audio output of one AudioMixer can be routed into any AudioGroup of any other AudioMixer, allowing complex re-configurable Audio processing.
  • Audio "Sends" and "Receives" can be inserted anywhere into the signal chain of an AudioGroup.
  • The attenuation of an AudioGroup can be applied at any point in the AudioGroup (allowing pre and post fader effects).
  • Snapshots of mixer state (on all parameters) can be created for AudioMixers. These snapshots can be interpolated between during play through a set of per-parameter transition curves.
  • Snapshots can also be weighted blended (2 or more snapshots).
  • Any parameter (volume / pitch / effect parameter etc) can be exposed via a name to the runtime API allowing very precise tweaking of any parameter in a mixer during game play.
  • Mixer "Views" can be created so that complex mixer hierarchies can be narrowed down in the GUI allowing focus on tweaking certain parts of the mix (music / foley / etc).
  • AudioGroups can be Soloed, Muted and have their effects bypassed.
  • Built-in side-chain volume ducking.
  • Support for custom high-performance native audio plugins through a new SDK.
  • Rewritten Audio asset pipeline and AudioClip backend:
  • AudioClip settings now support multi-editing.
  • Audio transcoding and packing now happens in a separate tool, removing risk of crashing Unity on import.
  • No double loading of sounds during import processing.
  • Better handling of huge audio files. If a sound is set to streaming, it is never fully loaded in the editor or player now.
  • Editor profiling of Audio is now accurate and reflects how it would be in the game.
  • Streaming (file handle) resources are now freed immediately after playback of sound.
  • Much improved audio formats in terms of memory and CPU usage. The Format property no longer refers to a specific platform-specific file format, but to a encoding method (Uncompressed, Compressed, ADPCM).
  • The audio data of an AudioClip can now be loaded on demand by scripts, and loading can happen in the background without blocking the main game thread. Memory management can now be performed much easier of AudioClips in the project.
  • Improved Audio Profiler with better statistics and detailed information. To view it, open the Profiler window, click the Audio pane and press the Stats button.
  • Physics Features:
  • PhysX 3 integration:
  • Better perfomance on multi-core processors, and especially on mobile. See http://physxinfo.com/news/11297/the-evolution-of-physx-sdk-performance-wise/
  • Moving static colliders does not cause performance penalty anymore.
  • Better simulation quality, e.g. stacking stability.
  • Cleaner codebase, which does not contain some of the long standing issues.
  • See http://blogs.unity3d.com/2014/07/08/high-performance-physics-in-unity-5/
  • 2D physics:
  • Added ConstantForce2D component.
  • Added PointEffector2D, AreaEffector2D, PlatformEffector2D and SurfaceEffector2D components.
  • Added Physics2D.IsTouching and Collider2D.IsTouching methods.
  • Added Physics2D.IsTouchingLayer and Collider2D.IsTouchingLayer methods.
  • All 2D colliders now have a 2D ‘offset’ property that replaces the ‘center’ property no BoxCollider2D and CircleCollider2D.
  • Added Rigidbody.maxDepenetrationVelocity to make possible to tune the velocity of the colliding rigidbodies when they are pushing each other away.
  • Added TerrainData.thickness to control the thickness of TerrainColliders.
  • Add Cloth.ClearTransformMotion method to allow teleportation of cloth instances
  • Editor Features:
  • Unity editor is now 64-bit:
  • A separate 32-bit installer is available for Windows; on Mac OS X we only ship 64-bit now.
  • Note that this affects native plugins used in the editor, which now also need to be 64-bit.
  • New AssetBundle build system:
  • Add simple UI to mark assets into assetBundles, provide simple API to build assetBundles without having to write complex custom scripts (no need for Push/Pop).
  • Support incremental build, which only rebuilds AssetBundles that actually change.
  • AssetBundle dependencies don't force the rebuild of all the bundles in the dependency chain.
  • AssetBundles: Provide AppendHashToAssetBundleName option to allow to append the hash to the bundle name.
  • AssetBundles: Provide AssetBundleManifest which can be used to get the dependent AssetBundles at runtime.
  • AssetBundles: By default include type tree in the assetBundle on all the platform except metro.
  • New Project Wizard (“Home”) dialog:
  • Project Templates - in addition to "Empty 3D" and "Empty 2D", we will supply starter kits to provide a foundation and demonstrate best practices for different project types. These are currently placeholders while the final ones are being made.
  • Recent projects list shows "Last Saved With" version number for each project (if available - this information is only saved starting with 5.0).
  • Asset Importing:
  • Updated FBX SDK to 2015.1: better performance; fixes various rare crashes when importing some Collada, OBJ, 3DS files; fixed reversed normals in some DXF files.
  • Added AssetPostProcessor.OnPreProcessAnimation, this new callback is called just before animation clips are created.
  • Added ModelImporter.defaultClipAnimations (list of ModelImportClipAnimation based on TakeInfo) and ModelImporter.importedTakeInfos (list of TakeInfo from the file).
  • Profiler: New view in the CPU Profiler that shows the frame samples laid out on a Timeline. Each thread has its own timeline; this is mostly useful for multi-threaded profiling.
  • Version Control: Scene and Prefab Merging:
  • Command line merge tool that understands the scene and prefab formats in order to do semantic merges.
  • Merge tool integration with Unity's existing version control integration. Can be enabled from EditorSettings.
  • Module Manager:
  • Now lists all available versions of a module.
  • Now supports rolling back to another available module version.
  • Asset Store: The asset store window is now much faster, more responsive, and looks better.
  • Plugin Inspector: new native plugin system. You're no longer required to place platform specific plugins into special folders like Assets\Plugins\iOS, Assets\Plugins\X64, etc. From now on, you can place them anywhere:
  • You can set platform compatibility settings by clicking on the plugin (files with extensions - *.dll, *.so, etc, and folders with extension - *.bundle), this include both managed and native files. Plugins can be set for “Any” platform, “Editor only” or a specific platform.
  • Platform specific settings can also be set, e.g. CPU type. Different platforms may have different settings.
  • AI Features:
  • NavMesh supports LoadLevelAdditive now!
  • Improved performance and reduced memory consumption:
  • NavMeshObstacles update is multi-threaded now. Carving speed generally improved 2-4x.
  • NavMesh data for non-carved regions takes ~2x less memory now.
  • Performance improvements for multi-threaded NavMeshAgent updates.
  • HeightMeshes bake faster, work faster at runtime, and use ~35% less memory.
  • Path replanning in presence of many carving obstacles is faster and more accurate.
  • Improved inspectors and debug visualizations:
  • NavMesh Areas inspector (previously NavMesh Layers) got a facelift.
  • Reorganized parameters NavMeshAgent inspector.
  • Added carve hull debug visualisation for NavMeshObstacles.
  • Added visualisation on how NavMesh bake settings relate to each other.
  • Improved accuracy and raised limits:
  • NavMeshObstacle supports two basic shapes - cylinder and box for both carving and avoidance.
  • Improved automatic Off-Mesh Link collision detection accuracy. Note that this will change how off-mesh links placement on existing scenes.
  • Improved navmesh point location/mapping when height mesh is used.
  • Increased the height range of NavMesh baking (can build meshes for taller scenes).
  • Made Height Mesh query more resilient to small holes in input geometry.
  • NavMesh obstacle rotation is take into account when carving and avoiding.
  • NavMesh tile count limit lifted from 2^16 to 2^28.
  • NavMeshPath and NavMeshAgent paths removed 256 polygon limit.
  • OffMeshLink - restriction on tile span - previously connected only up to neighbouring tiles.
  • Core Optimizations:
  • Improved multithreaded job system:
  • Internally multithreaded parts (culling, skinning, mecanim, ...) are more efficient now via lockless voodoo magic.
  • Culling & shadow caster culling is multithreaded now.
  • Improved loading performance. Better control of how objects are created on the loading thread makes it possible to get rid of object reference overhead between components and allows us to do all reads from disk completely linearly. More work has been offloaded to the loading thread, reducing the overhead of asynchronous loading on the main thread.
  • Object.Instantiate performance has been improved.
  • Mecanim optimizations:
  • Optimized Animator Enable(), 2x speed on complex controllers.
  • Optimized Animator memory usage per instance, 2x smaller on complex controllers.
  • Improved performance for Animator Tool.
  • Optimized memory usage and runtime performance when serializing objects with backward compatibility (type-tree) enabled.
  • Updated occlusion culling (Umbra) version; contains improvements for mobile Umbra culling performance, and improves occlusion culling robustness in some cases.
  • Optimized texture importing performance.
  • Terrain tree culling performance was improved.
  • Android Features:
  • Added the ability to deploy and run games on Android TV.
  • Fat binary support (x86+ARMv7).
  • Support for rendering to multiple displays.
  • Support for KitKat Immersive Fullscreen Mode.
  • Support for x86 as a build target.
  • iOS Features:
  • Script debugging can be done over USB cable now.
  • Improved iOS8 and Xcode 6 support.
  • Optimized Texture2D.LoadImage performance for PNG and JPG files.
  • Added Xcode manipulation API for editor scripts, and rewritten Xcode project generator.
  • Expose Xcode project manipulation API
  • Added deep plugin folder structure support.
  • Game controller button pressure is now also exposed as axis (float) value.
  • Metal support. Metal is used automatically on supported systems (iOS8 and A7 or later). There's an option under Player Settings to choose GLES if needed.
  • iPhone 6 and iPhone 6 Plus support
  • Linux & SteamOS Features:
  • Now supports gamepad configuration via Steam Big Picture mode.
  • Now includes default configurations for several common gamepads.
  • Now supports gamepad hotplugging.
  • WebGL Features:
  • WebGL support: a new target in the build player window.
  • Currently marked as “Preview” state; official support for latest Firefox & Chrome.
  • See blog post: http://blogs.unity3d.com/2014/04/29/on-the-future-of-web-publishing-in-unity/
  • Scripting Features:
  • Introduced option to auto-update obsolete Unity API usage in scripts & assemblies.
  • Performance improvements for all GetComponent variants.
  • “transform” is now cached on the C# side, no more need to cache it yourself.
  • Added disposable scope helpers for Begin/End pairs for GUI, GUILayout, EditorGUI and EditorGUILayout.
  • Added formatting overloads to Debug.Log*.
  • Added generic overloads for AssetBundle.Load*.
  • Other Improvements:
  • 2D: Added Sprite.pivot getter.
  • 2D: Sprite geometry can now be overridden using Sprite.OverrideGeometry(Vector2[] vertices, UInt16[] triangles). Unity Pro only.
  • 2D: SpritePacker Atlas texture name will now also contain the atlas name.
  • 2D: The new AssetPostprocessor.OnPostprocessSprites(Texture2D texture, Sprite[] sprites) is called immediately after OnPostprocessTexture when sprites are generated.
  • AI: New icons for navmesh asset and components
  • AI: Warn if agent and obstacle components are placed on the same GO
  • AI: Warn if navmesh slope bake seetting is unreasonable
  • Android: Added proper support for MouseDrag event.
  • Android: Added public Java API for attaching custom surfaces.
  • Android: Added support for BGRA textures.
  • Android: Enabled parallel job scheduler
  • Android: Enhanced VSync support.
  • Android: Export now works for projects that use UnityPlayerActivity or UnityPlayerProxyActivity.
  • Android: Fixed delay when resuming game from paused state
  • Android: Fixed support for external display when it is reconnected while app is running.
  • Android: Force hardware upscaling for Screen.SetResolution().
  • Android: Reconfiguring antialiasing or switching display buffer size should no longer result in a GL context loss.
  • Android: Support for profiling Intel GPU using the Unity Editor.
  • Android: User resolution now gets swapped when the orientation is changed.
  • Animation: Support the case that both SkinnedMeshRenderer and Animator are on the same GameObject (optimised mode).
  • Asset Import: Faster texture conversion into cubemaps & HDR image processing, by multithreading parts of the process.
  • Asset Import: Support large bitmaps importing (>4Gb in size)
  • Assets Management: Allow to access files with long path (more than 260 characters) on Windows.
  • Audio: Increased default virtual voice count from 100 to 512 and made it user-configurable through project settings.
  • BlackBerry: Added "Add Attached Device" to the debug token creation window.
  • BlackBerry: Application.systemLanguage now differentiates between Chinese Simplified and Chinese Traditional appropriately.
  • BlackBerry: Registration now uses BlackBerry's 10.2 registration system. Currently registered systems do not need to re-register.
  • Deployment Management: Display Enlighten's build stage when building player
  • Editor: Add warning on exiting play mode when objects have been spawned into the scene from OnDestroy().
  • Editor: Added "Android TV Compatibility" checkbox which enables Android TV compatibility checks during build time
  • Editor: Added support for importing PVRv3, ASTC, KTX files
  • Editor: Added 8192 maximum texture size option in import settings.
  • Editor: Added deferred diffuse/specular/smoothness/normals scene view rendering modes.
  • Editor: Added virtual function ScriptableWizard.DrawWizardGUI for customizing GUI of derived wizard classes.
  • Editor: Better documentation for exposed AssetPreview methods.
  • Editor: Camera inspector shows camera's depth texture mode. Also, scene view camera makes sure to match main camera's depthTextureMode.
  • Editor: Drag-and-drop assigns material to a specific part of the mesh now. Holding Alt key will assign material to all the parts of the mesh.
  • Editor: Exposed AssetPreview.SetPreviewTextureCacheSize ().
  • Editor: Frame Selected (F key over scene view) now takes point/spot light range into account.
  • Editor: Improve searching for class names in different namespaces and across different user assemblies.
  • Editor: It is now possible to override the StandardShaderGUI with a user defined version (by dropping a modified copy of StandardShaderGUI.cs into the project)
  • Editor: New Artwork for Splash Screens
  • Editor: Optimization of Hierarchy Window
  • Editor: Prevent tooltips from showing while dragging.
  • Editor: Tag editor facelift by removing the empty tag and using Reorderable list to draw tags and layers.
  • Editor: Unity will output a proper error regarding incompatible CPU architectures on Mac OS X when failing to load native libraries. For ex., You cannot load 32 bit native libraries on 64 bit Editor
  • Editor: When saving scenes, overwrite existing scene file only after successful save.
  • Font Rendering: Added easier APIs to access OS Fonts (Font.GetOSInstalledFontNames and Font.CreateDynamicFontFromOSFont).
  • Font Rendering: Added new APIs to get font metrics if you want to implement your own font rendering: Font.ascent, Font.lineheight, new fields in CharacterInfo (old fields in CharacterInfo are deprecated).
  • Font Rendering: Optimized texture rebuilds to happen less often.
  • Graphics: Added "#pragma exclude_renderers nomrt" for platforms not supporting multiple render targets (MRTs).
  • Graphics: Added RenderTextureFormat.ARGB2101010 (0 bit/channel color) and RenderTextureFormat.Shadowmap (native shadowmap) formats.
  • Graphics: Added Texture2D.EncodeToJPG with a JPG quality argument.
  • Graphics: Added Threshold tweak to SunShafts, removed legacy "apha as mask".
  • Graphics: Exposed SystemInfo.graphicsMultiThreaded to scripting API.
  • Graphics: Mesh compression will now also do lossy compression of vertex colors.
  • Graphics: Skinned meshes use less memory by sharing index buffers between instances.
  • Graphics: Support for more shader keywords (128 instead of 64).
  • Image Effects: GlobalFog image post-processing effect was rewritten. Now it has "distance fog" (matches what is set in render settings), and optional "height fog" (linearly increasing fog density below specified height).
  • iOS: added debug labels for OpenGL objects, useful in Xcode frame capture debugging.
  • iOS: Better support for Uunity view size changes from native side.
  • iOS: Enabled basic background processing.
  • iOS: Improved Xcode API to expose default Unity Xcode project / target name
  • iOS: Implement a way to select iOS framework dependencies for native plugins.
  • iOS: Tweaked external RenderSurface API to make a bit more sense and be more concise.
  • License: Activate from command-line.
  • License: Added -returnlicense command line option, which returns the currently active license and quits the editor.
  • License: A progress bar will be shown during returning or releasing a license.
  • Linux: Add Input.IsJoystickPreconfigured for querying 5.0 Linux gamepad detection
  • Linux: Implement monitor selection
  • Linux: Implement screen-fullscreen command line option
  • Linux: Set popupwindow mode via Motif borderless hint when supported
  • Linux: Support XDG-compliant path overrides.
  • Math: Added SphericalHarmonics3 scripting struct.
  • Mecanim: Added RuntimeAnimatorController.animationClips property, it does return all the clips in the controller
  • Mecanim: Added tooltips to animation transtion settings + added foldout group for settings.
  • Mecanim: Added Utility function AnimatorController.FindStateMachineBehaviourContext(StateMachineBehaviour behaviour) which return the controller, state and layer index containing this instance.
  • Mecanim: Always display numeric values for Transition's duration, offset and exitTime.
  • Mecanim: Copy/paste/duplicate keyboard shortcuts work.
  • Mecanim: Display Animator stats in inspector: Clip count, curve count, etc.
  • Mecanim: Improved humanoid retargeting. The differences between Generic and Humanoid animation are now less than 0.001 normalized meter and 0.1 degrees on end points.
  • Mecanim: Improved Parameter and Layer UI. Parameters are in a separate window, so it can be docked anywhere.
  • Mecanim: Runtime access to Animator's parameters (Animator.parameters property).
  • Merging: Improve conflict output to console
  • Merging: Improve premerge by rewriting all of left, right and base
  • Meshes: Added "keep quads" mesh import option; useful for DX11/Console tessellation shaders.
  • Mobile: Update PVRTC compressor.
  • OpenGL ES: Enfore RGB normal maps even if source texture have alpha.
  • OSX Editor: Finished builds will be shown in OS X notification center when in the background.
  • OSX: Implement show-screen-selector command-line option
  • Physics: Added missing 'speedVariation' property to SurfaceEffector2D to match similar functionality in AreaEffector2D and PointEffector2D.
  • Physics: adaptive force is now optional (disabled by default).
  • Physics: Allow SkinnedMeshRenderer to accept non-skinned meshes.
  • Physics: Changed default cloth coefficient values, and added info boxes to cloth editor
  • Physics: Cloth; exposed sleep force parameter to tune minimum force after which cloth will start sleeping.
  • Physics: Cloth; exposed tethers flag to improve cloth simulation quality.
  • Physics: Cloth inspector is now much faster and capable of dealing with meshes of any vertex count
  • Physics: Display a warning against a 2D collider when it is unable to create a Box2D collision shape due to it not meeting Box2D constraints.
  • Physics: Exposed a function ConfigureVehicleSubsteps in WheelCollider to make it possible for developers to customise vehicle sub-stepping. This helps setting up heavy vehicles, that require different amount of sub-steps to simulate wheels correctly.
  • Physics: Improve editor tool-tips for all 2D physics effector properties.
  • Physics: Make scaling mesh colliders cheaper, by not creating a new mesh with scaling applied to it with every scale change.
  • Physics: Redesigned WheelCollider gizmo to show more relevant information.
  • Physics: Removed internal lock in PhysXRaycast, particles should now be able to process raycasts in multithreaded mode.
  • Physics: Show inconsistent hinge joint constraints in inspector
  • Physics: The cloth constraint editing UI has been replaced by a more intuitive UI inside the Scene View.
  • Physics: Updated default values for WheelCollider as the old ones did not make any sense with new PhysX.
  • Plugins: Unity will now check if plugins don't collide with each before building to player. Previous behavior was that you would need to wait until all the scenes were built, and you would only then see that plugin with same filename is trying to overwrite another plugin.
  • Plugins (Windows Store Apps/Windows Phone): when picking placeholder plugins only plugins with matching file names as the original plugin will be shown
  • Profiler: Enable GPU profiler on Mac OS X 10.8 and above for all GPUs.
  • Profiler: Now has a search field for filtering the results.
  • Profiler: Image Effects have profiling blocks with the script name in them, instead of a generic "ImageEffect".
  • Reflection Probes: Box Projection is now enabled (not supported in shader model 2.0), the shader will be using reflection probe's AABB for that purpose. Note: AABB is not affected by probe's rotation or scale.
  • Scene View: Can drag a cubemap onto empty space in the scene view to assign it as a skybox.
  • Scripting: 64-bit platforms will now accept managed DLLs compiled specifically for x64.
  • Scripting: All GetComponent paths much faster, especially GetComponent.
  • Scripting: GetComponent family of functions now supports interfaces as generic argument.
  • Scripting: Support serialization of all primitive types.
  • Shaders: Added [NoTilingOffset] property attribute; hides tiling & offset fields in texture property UI.
  • Shaders: Added MaterialPropertyDecorators. Similar to MaterialPropertyDrawers, but you can add many of them on a shader property. Added built-in decorators: [Space], [Header(text)].
  • Shaders: Built-in Fog works on all platforms now (includes WP8/WinRT/consoles).
  • Shaders: Improved "compile and show code" functionality in shader inspector. Now has dropdown to select custom set of platforms to compile shaders for. And shows a progress bar while compiling shader variants for display.
  • Shaders: Information about texture format decoding (LDR, dLDR, RGBM, Normals) is passed in %TextureName%_HDR shader constant.
  • Shaders: Made it possible to use stencil buffer during deferred shading/lighting g-buffer passes, to some extent. Stencil reference value coming from shader/material will be combined (binary or) with Unity-supplied reference value.
  • Shadows: Most platforms now internally use floating point (RFloat) format for point light shadows, instead of custom encoded ARGB32 format. Saves some shader instructions and is slightly better precision.
  • Shaders: Optimized shader importing performance, particularly for surface shaders with many multi_compile/shader_feature variants.
  • Shaders: Skybox shaders (including "Skybox/Procedural") get direction and color of the main light passed in the shader constants.
  • Shaders: Support EXT_shader_framebuffer_fetch functionality in shader translators. In Cg/HLSL code, use "inout" modifier for pixel shader output color; this will get translated into framebuffer fetch for GLES2.0 & 3.0.
  • Shaders: Surface shaders allow more texture interpolators, when targeting shader model 4.0+ (up to 32).
  • Shaders: Surface shaders use up slightly less samplers on DX11-like platforms (in dual lightmapping case, both lightmaps share the same sampler). Added UNITY_SAMPLE_TEX2D_SAMPLER helper macro to read a texture, while using sampler from another one.
  • Shaders: Updated GLSL Optimizer for mobile shader compilation. Has better optimization and fixes some issues.
  • Standalone: Add show-screen-selector command line option for Linux and Windows.
  • Standard Assets: Cleaned up Daylight&Nighttime Pro Water prefab a bit (less obscure options in material inspectors)
  • Substance: Consolidation of Substance binary data prior to runtime use now has a much lower peak memory footprint.
  • Undo: Add GetCurrentGroupName() and SetCurrentGroupName() to allow overriding the automatic undo name generation
  • Unity Remote 4: Add compass support.
  • Unity Remote 4: Added ability to customise screen stream compression: JPEG or PNG compression, full or downscaled resolution.
  • Unity Remote 4: Added LocationService (GPS) support.
  • Unity Remote 4: Add EditorApplication.isRemoteConnected API to check if editor has connected to remote app.
  • Version Control: Add shortcut for submit and cancel in submit dialog. Default keyboard focus to textarea when opening submit window.
  • Windows Editor: Native child windows have their title set to the GUIView/EditorWindow class name.
  • Windows Phone 8: Geolocator initialization code removed from Visual Studio project files. When overwriting existing 4.x projects please remove redundant code.
  • Windows Phone/Windows Store Apps: Significantly improved performance of passing System.Type objects to UnityEngine (for example, GetComponent is affected)
  • Windows standalone and webplayer: Input subsystem processes touch messages via WM_TOUCH. Previously it worked with Windows-simulated mouse events.
  • Windows Store/Phone: Shadows on mobile devices there now work just like on iOS/Android - no cascaded shadow maps (i.e. not "too slow on mobile" anymore).
  • Windows Store Apps: added Directory, DirectoryInfo, File, FileStream replacements to WinRTLegacy
  • Windows Store Apps: added support for linear color space
  • Windows Store Apps: Added OnFileActivated handler in App.xaml.[cs/cpp].
  • Windows Store Apps: building on top of existing project will now check, if a project being overwritten is compatible with newly built one.
  • Windows Store Apps: Chinese Traditional and Simplified languages are now detected and reported, instead of always returning generic Chinese
  • Windows Store Apps: Handheld class now available
  • Windows Store Apps: PlayerPrefs will be saved now whenever application goes in to suspend mode.
  • Windows Store Apps: Update docs PlayerPrefs.Save and OnApplicationQuit.
  • Windows Store Apps: You can now use joysticks in addition to Xbox 360 controllers, but you have to enable HumanInterfaceDevice capability in PlayerSettings. Note: this capability is not visible in Package.appxmanifest UI interface in Visual Studio.
  • WWW: Populate bytes and text on non-200 response
  • Audio: Removed 3D property in AudioClip and moved all 3D audio functionality to the AudioSource:
  • Renamed AudioSource.panLevel to AudioSource.spatialBlend. This property now controls the 2D / 3D mode of sound playback through this AudioSource. There is no longer a mode toggle, but a continuous interpolation between the two states.
  • Renamed AudioSource.pan to AudioSound.panStereo. This is to remove confusion about the nature of this property. AudioSource.panStereo pans the audio signal into the left or right speakers. This happens before spatial panning is applied and can be applied in conjunction with 3D panning.
  • Standalone: Cursor management cleanup:
  • Screen.lockCursor has become Cursor.lockState
  • Screen.showCursor has become Cursor.visible
  • Added ConfineCursor state to confine cursor to game window (Linux/Windows)
  • Cursor lock state and cursor visibility state are now mutually independent
  • Editor: Improvements to MaterialEditor:
  • Show a foldout arrow for Material inspectors inlined on gameobjects to make it clear that they can be expanded/collapsed.
  • Added TexturePropertyMiniThumbnail(): Draw a property field for a texture shader property that only takes up a single line height. The thumbnail is shown to the left of the label. Clicking the thumbnail will show a large preview info window.
  • Added GetTexturePropertyCustomArea():. Returns the free rect below the label and before the large thumb object field. Is used for e.g. tiling and offset properties.
  • Added TextureScaleOffsetProperty(): Draws tiling and offset properties for a texture.
  • Texture scaling and offset values can now be dragged.
  • Changes:
  • 2D: UnityEditor.Sprites.DataUtility.GetSpriteMesh and GetSpriteIndices functions are now deprecated. Use Sprite.vertices, Sprite.uv and Sprite.triangles instead.
  • Android: Disabled hidden input keyboard
  • AI: NavMesh bake settings: Removed width/height inaccuracy and allow to set voxel size instead.
  • AI: NavMesh data format has changed - you need to rebuild the NavMesh to use it
  • AI: NavMeshLayer is replaced with NavMeshArea: old API is deprecated, area types are stored now in ProjectSettings/NavMeshLayers.asset
  • AI: NavMeshObstacle supports two basic shapes - Capsule and Box, for both carving and avoidance.
  • AI: Setting destination on a NavMeshAgent doesn't resume the agent after calling 'Stop' - call Resume explicitly to resume the agent.
  • AI: Use smaller navmesh tile partitioning to improve baking and carving speed.
  • Android: Dropped support for non-NEON CPU devices (e.g. Tegra 2). This gives a significant performance boost to Mecanim and PhysX among other things.
  • Asset Import: Unify global scale while importing FBX models.
  • AssetBundle: New version of WWW.LoadFromCacheOrDownload which can take Hash128 as version.
  • AssetBundle: Support type tree incremental build check.
  • Audio: AudioSettings.outputSampleRate and AudioSettings.speakerMode can now only be read from, because setting it required a complete restart of the sound system and therefore losing state of all non disk-based AudioClips and filters. SetDSPBufferSize has been declared obsolete for the same reason.
  • Audio: The hardware, loopable and compressionBitrate of AudioImporter are now obsolete.
  • BlackBerry: Removed Author ID and Author ID override from publishing settings.
  • BlackBerry: Removed obsolete "BB10" scripting targets from API. Please use "BlackBerry" instead.
  • Editor: EditorApplication.NewScene() creates a scene that has a Main Camera, a Directional Light, a default Skybox set in the Scene Render Settings and has Enlighten enabled by default. If you need a new scene with no GameObjects in it use EditorApplication.NewEmptyScene().
  • Editor: Apply build target switch from -buildTarget before initial domain load.
  • Editor: Editor always runs in background when a debugger is attached.
  • Editor: If standalone is current build target, do a full build target switch when setting EditorUserBuildSettings.selectedStandaloneTarget.
  • Editor: It is now recommended to derive from ShaderGUI instead of deriving from MaterialEditor to make custom gui for shaders. This ensures that custom shader gui works properly together with the Substance Material Editor (Check the docs for ShaderGUI).
  • Editor: Merged two scene view render mode dropdowns into one.
  • Editor: Players always run in background when "Script Debugging" is enabled.
  • Editor: Prefab instance objects are no longer stored as part of the scene file.
  • Editor: Recognize more build target names with -buildTarget switch and remove 32bit/64bit switch for "standalone".
  • Editor: Remove warning if using Destroy/DestroyImmediate on objects that are still in the load queue and have not been woken up yet.
  • Editor: Renamed "Enable HW Statistics" player setting to "Enable Cloud Integration", in preparation of hosting the hwstats functionality under the Unity Cloud umbrella.
  • Editor: Replace EditorUtility.UnloadUnusedAssets() to UnloadUnusedAssetsImmediate().
  • Editor: TextMesh and MeshFilter components are not allowed to exist on the same GameObject
  • GLES: Replaced 16bit depth buffer support with the ability to completely disable depth and stencil buffers.
  • Graphics: Camera.pixelWidth and Camera.pixelHeight now return int, not float.
  • Graphics: Changed behavior of what happens with textures that are too large for the GPU to handle, and they don't have mipmaps. Now such textures are displayed in blue color. Before, some platforms were downscaling them in some cases; other platforms were leaving them as garbage; others were crashing.
  • Graphics: Light and Reflection Probes are enabled on Renderer components by default.
  • Graphics: OnPreRender script callback is called before rendering camera's depth texture now.
  • Graphics: Made SystemInfo.graphicsPixelFillrate obsolete (it was not being maintained to cover new GPUs, and was not working on most platforms anyway). Now it always returns -1, just like it used to for unknown GPUs.
  • Graphics: Renamed HDR_LIGHT_PREPASS_ON shader keyword to UNITY_HDR_ON (now the keyword is always set when camera is HDR).
  • Graphics: Renamed VertexLit and DeferredLighting rendering paths to "Legacy" names.
  • Graphics: Setting Mesh.colors keeps the colors in float format instead of converting to bytes. This allows you to store higher-precision color values on meshes. Note that it will use more memory so if that is a concern use Mesh.colors32 instead.
  • iOS: ARC is enabled.
  • iOS: Refactor player pausing in the trampoline
  • iOS: Trampoline now uses clang standard library, C++11 is enabled, iOS7 SDK and Xcode5 are enforced, iOS6 is the minimal version supported.
  • iOS: Use fixed 56000 port in player for script debugging.
  • Mac OS X: Application.persistentPath will now correctly give you a folder in ~/Application Support instead of ~/Library/Caches.
  • Mac OS X Standalone: Data folder has moved to Content/Resources, in accordance with Apple guidelines
  • Mecanim: Added Animator.HasState to be able to query if an animator has a certain State.
  • Mecanim: Animator Tool deleting a layer or parameter can now be done with delete key.
  • Mecanim: AnimationUtility.SetAnimationClipSettings now public
  • Mecanim: Can now transition to self (State or StateMachine).
  • Mecanim: Changed profiling detail to see more information for the Animator evaluation pipeline
  • Mecanim: Import blending pivot is disabled. There was a problem with imported pivot changing height (y).
  • Mecanim: In the character transform hierarchy, if a transform doesn't belong to the skeleton, then we preserve it as it is while doing optimization.
  • Mecanim: Motion API is now available in Runtime
  • Mecanim: Moved AvatarMask to the Animations namespace.
  • Mecanim: Moved GameObjectUtility.OptimizetransformHierarchy from Editor code to Runtime class AnimatorUtility.OptimizetransformHierarchy.
  • Mecanim: Transform scale now blends linear instead of exponential. It allows blending with scale = 0
  • Physics: All 2D colliders now have a local-space "offset" property. This replaces the "center" property in BoxCollider2D and CircleCollider2D.
  • Physics: Allow PhysicsMaterial2D "bounciness" property to be greater than 1.
  • Physics: Disabled MonoBehaviours will no longer receive collision or trigger callbacks.
  • Plugins: Turn assert for native plugin architecture check into error message.
  • Scripting: Added generic version of Object.Instantiate (has been in the docs since 3.5 but not exposed in the API before).
  • Scripting: C# compiler defaults script encoding to UTF8
  • Shaders: Renamed "RenderFX/Skybox cubed" and "RenderFX/Skybox" shaders to "Skybox/Cubemap" and "Skybox/6 Planes".
  • Shaders: Built-in functionality for directional lightmaps, dynamic Enlighten GI and soft shadows all require shader model 3.0 now.
  • Shaders: Builtin Skybox shaders write 1.0 into alpha channel now.
  • Shadows: All built-in shadow shaders used no backface culling; that was changed to match culling mode of regular rendering.
  • Shadows: When using oblique camera projection, shadows are disabled now.
  • Terrain: Terrain component was moved from being a C# component to being a native engine component.
  • Windows Store Apps: Added UnityEngine.WSA.Application.advertisingIdentifier
  • Windows Store Apps: 'Metro' keyword was replaced to 'WSA' in most APIs, for ex., BuildTarget.MetroPlayer became BuildTarget.WSAPlayer, PlayerSettings.Metro became PlayerSettings.WSA. Defines in scripts like UNITY_METRO, UNITY_METRO_8_0, UNITY_METRO_8_1 are still there, but along them there will be defines UNITY_WSA, UNITY_WSA_8_0, UNITY_WSA_8_1.
  • Windows Store Apps: Removed support for C++ Visual Studio projects
  • Graphics: Removed a bunch of obsolete APIs:
  • Camera.mainCamera (use Camera.main), Camera.GetScreenWidth (use Screen.width), Camera.GetScreenHeight (use Screen.height), Camera.DoClear, Camera.isOrthoGraphic (use Camera.orthographic), Camera.orthoGraphicSize (use Camera.orthographicSize).
  • Renderer.Render, Graphics.SetupVertexLights, obsolete Graphics.DrawMesh overloads (use DrawMeshNow), RenderTexture.SetBorderColor, Screen.GetResolution (use currentResolution), Mesh.uv1 (use uv2 instead), SkinnedMeshRenderer.skinNormals, LightmapData.lightmap (use lightmapFar instead).
  • Removed SystemInfo properties deviceName, deviceVendor, deviceVersion and supportsVertexProgram. Use graphicsDeviceName, graphicsDeviceVendor, graphicsDeviceVersion instead. Vertex programs are always supported.
  • Scripting: A bunch of scripting changes. Most of them should be handled automatically by our new API upgrade tool:
  • Removed quick property accessors, like .rigidBody, .rigidbody2D, .camera, .light, .animation, .constantForce, .renderer, .audio, .networkView, .guiTexture, .collider, .collider2D, .particleSystem, .particleEmitter, .guiText, .hingeJoint for modularization. Instead, use GetComponent to get references.
  • AddComponent(string) is removed. Use AddComponent() instead.
  • GetComponent(string) is removed. use GetComponent() instead.
  • Application.RegisterLogCallback() and RegisterLogCallbackThreaded() have been deprecated and replaced by two new events Application.logMessageReceived and Application.logMessageReceivedThreaded. This allows for multiple subscribers.
  • GameObject.SampleAnimation() moved to AnimationClip.SampleObject().
  • ParticleSystem.safeCollisionEventSize changed to ParticleSystem.GetSafeCollisionEventSize().
  • TerrainData.physicMaterial changed to TerrainData.GetPhysicMaterial() and TerrainData.SetPhysicMaterial().
  • Deprecated Component.active property has been removed.
  • AssetBundle:
  • Rename AssetBundle.Load***() to AssetBundle.LoadAsset***().
  • Rename AssetBundle.LoadAll() to AssetBundle.LoadAllAssets().
  • Provide AssetBundle.LoadAllAssetsAsync() which loads all assets asynchronously.
  • Provide AssetBundle.LoadAssetWithSubAssets***() which loads the asset with the sub assets.
  • Provide AssetBundle.AllAssetNames() to return all the assets in the assetBundle.
  • Shadows:
  • Shadows on D3D9 require "native shadowmap" support in the driver now (pretty much all systems that can do shadows have that, so this should be fairly invisible). Upside, less shader variants are included into game builds now.
  • Shadows on iOS+GLES2.0 require GL_EXT_shadow_samplers now. This means iPhone4 / iPodTouch4 will not support realtime shadows now. Upside, less shader variants and faster shader loading times.
  • Shaders: Removed some fixed-function shader features (use vertex & fragment shaders instead). This makes per-draw-call CPU overhead slightly lower across all platforms:
  • Removed TexGen. If you have old Projector shaders, they might be using this; upgrade to 4.5/5.0 projector shaders.
  • Removed texture combiner matrix transforms, i.e. "matrix" command inside a SetTexture.
  • Removed signed add (a+-b), multiply signed add (ab+-c), multiply subtract (ab-c), dot product (dot3, dot3rgba) SetTexture combiner modes.
  • SetTexture stage count is limited to 4 on all platforms.
  • Shaders: Fog handling in shaders was changed.
  • For surface shaders and fixed function shaders, nothing to do. Can add "nofog" to surface shader #pragma line to explicitly make it not support fog.
  • For manual vertex/fragment shaders, fog does not happen automagically now. You need to add #pragma multi_compile_fog and fog handling macros to your shader code. Check out built-in shader source, for example Unlit-Normal how to do it.
  • Shaders: Some shader compilers have changed:
  • Mixing partially fixed function & partially programmable shaders (e.g. fixed function verted lighting & pixel shader; or a vertex shader and texture combiners) is not supported anymore. It was never working on mobile, consoles or DirectX 11 anyway. This required changing behaviour of Reflective/VertexLit shader to not do that - it lost per-vertex specular support; on the plus side it now behaves consistently between platforms.
  • Direct3D 9 shader compiler was switched from Cg 2.2 to HLSL, the same compiler that's used for D3D11. This fixes a bunch of issues where Cg was generating invalid D3D9 shader assembly code; and generally produces slightly more efficient shaders. However, HLSL is slightly more picky about syntax; in general you have to do same shader fixes for D3D9 as for D3D11 now (e.g. UNITY_INITIALIZE_OUTPUT for “out” structures).
  • On desktop OpenGL, shaders are always compiled into GLSL instead of ARB_vertex/fragment_program target now. You no longer need to write "#pragma glsl" to get to features like vertex textures or derivative instructions. All support for ARB_vertex/fragment_programs is removed.
  • Fixes:
  • 2D: Fixed sprite importing regression which caused sprite references to be lost on texture rename.
  • AI: Fix crash when navmesh is removed from disk when in use
  • AI: Fix issue where baking navmesh for a duplicated scene would destroy the original scenes navmesh
  • AI: Fix issue where infinity is used as maxDistance argument to SamplePosition
  • AI: Fixed memory leak after navmesh baking of terrain meshes.
  • AI: Fixed problem where any change in rotation or scale would trigger re-carving regardless of specified move-threshold.
  • AI: navmesh is loaded before agents are created in additively loaded scenes - no need to wait one frame
  • AI: Offmesh link drop arrow is not connected to navmesh with big heights
  • AI: prevent path query to invalid/infinity positions
  • Android: Avoid reading expensive metrics in DisplayInfo more than once per frame.
  • Android: Compensate for polygonOffset bug on Mali 400 GPU.
  • Android: Disabled shadows for Intel PowerVR devices to avoid graphics artifacts.
  • Android: Dropped support for OpenGL ES 3 auto selection for devices running Android 4.1 and 4.2.
  • Android: Fixed 10s delay after resume on 1st gen Kindle Fire HD
  • Android: Fixed application hanging and crashing when trying to close the IME with the back button.
  • Android: Fixed crash on Xperia Play.
  • Android: Fixed flickering screen on resume
  • Android: Fixed frame rate on Tegra devices when doing GPU profiling.
  • Android: Fixed game starting not full screen if orientation is not set to Auto Rotation
  • Android: Fixed issues when changing anti-aliasing at runtime.
  • Android: Fixed leak when using ActivityIndicator.
  • Android: Fixed manifest detection for Android library project plugins
  • Android: Fixed mouse input
  • Android: Fixed SDK auto-update
  • Android: Fixed some old devices that crashed when target graphics API was set to "Auto".
  • Android: Fixed theme attribute in default manifest.
  • Android: Fixed Water4 standard asset rendering on some devices.
  • Android: Internet reachability check now returns proper value if switching in and out of airplane mode.
  • Android: Launching adb server should no longer popup annoying cmd windows on top of the Unity Editor.
  • Android: Project folder is no longer locked by adb after entering play mode in the editor.
  • Android: Raising an error if a library project misses AndroidManifest.xml.
  • Android: Reporting correct screen orientation even if OS refused to apply requested orientation.
  • Android: WWW responseHeaders now contain STATUS key.
  • Animation: Builtin materials are now editable in animation mode. The animation is stored on the clip not the material.
  • Animation: Fix UnloadNonDirtyStreams to correctly handle stream with destroyed objects.
  • Asset Import: Added warning messages when paths to assets are invalid
  • Asset Import: Append required .fontsettings extension if needed in GenerateEditableFont
  • Asset Import: Check texture format that can be assigned the TextureImporter
  • Asset Import: Fix import of empty .txt files.
  • Asset Import: Fixed AssetDatabase.ImportPackage fail when path to package has platform path separators.
  • Asset Import: Fixed crash when included blend shapes and needed to be split because of size.
  • Asset Import: Fixed possible crash when upgrading metadata files
  • Asset Importer: Support the manifest file in text importer
  • Asset Loading: Fix assets unload during load level operation
  • Asset Loading: Fix the crash while loading scene Unity with mecanim animation and skinnedmesh filter.
  • AssetBundle: Add the old loading functions back and mark them as OBSOLETE.
  • AssetBundle: AssetBundle.LoadAll***() now only return the game object without the first component.
  • AssetBundle: Fix the typo in .manifest file
  • AssetBundle: Remove duplicate objects when building with BuildAssetBundleExplicitAssetNames(). Also output more meaningful log information for assetBundle object.
  • Assets Management: Fix the "input objects must be of exact same type" error message
  • Assets Management: Prefabs including monobehaviours with missing scripts should not display a warning if the monobehaviour has been deleted on the prefab instance.
  • Audio: Added context menu to delete mixers in the mixers view of the AudioMixer window
  • Audio: API updater does not update the changed signature of AudioClip.Create but will output an obsolete warning about the removal of the _3D argument.
  • Audio: AudioClip.SetData no longer prints out error messages when writing data at a position that will cause wrapping.
  • Audio: Calling AudioClip.SetData causes a crash fixed
  • Audio: Fix crash when unloading LoadInBackground sounds in the Editor (WebGL platform)
  • Audio: Fix error message in mixer on undo when no mixer is active
  • Audio: Fix for regression where component effects are on the AudioListener cause a crash
  • Audio: Fixed a bug where the audio system stopped working when a game object had an AudioSource, an AudioListener and a custom audio filter attached. The system now outputs a warning as the custom audio filter can only be assigned to one Audio component at a time.
  • Audio: Remove exposed parameters correctly when deleting and effect that has exposed parameters in it.
  • BlackBerry: Event.shift and Event.alt now work as expected.
  • Build Pipeline: Don't include inactive EditorOnly objects in builds.
  • Build Pipeline: Fix the crash if user passes "./" as output path when building AssetBundles.
  • CacheServer: Fix "CacheServer Asset validation failed" error messages while Unity is importing project.
  • CacheServer: Fix Cache Server several issues.
  • CacheServer: Fix editor crash when enabling the Cache Server in preferences with empty address.
  • Core: Asset Bundle Export performance increase.
  • Core: Fix crash when initializing Light from prefab object during scene loading.
  • Core: Fix possible crash while loading multiple AssetBundles simultaneously.
  • Core: Fix the bug that loading from cache returns false.
  • Core: Fixed data race in memory allocators.
  • Core: Fixed memory leak when calling 'Object.Destroy' and returning to edit mode.
  • D3D11: Fixed an issue which caused some objects not be rendered if shadows are enabled in the scene on feature level 9.x
  • Debugger: Allow evaluation of methods with string literal parameters
  • Debugger: Don't interrupt user waits (e.g. ManualResetEvent)
  • Debugger: Fix setting breakpoints in generic method implementations.
  • Debugger: Fix some instances of freezing or hanging.
  • Deployment Management: Fix StandalonePlayer launched from UNC path
  • Deployment Management: Simpler "Force Single Instance" error message on Windows
  • Editor: AnimationState.time is updated when scrubbing animation in the AnimationWindow.
  • Editor: Cloth inspector to support multi-editing
  • Editor: Confined cursor mode doesn't confine cursor to last active editor pane
  • Editor: Create a new project upgrade warning system that does not depend on serialized files or version control.
  • Editor: Deleting an asset does not make deleted objects from other assets appear again.
  • Editor: Disallow empty names for sprites
  • Editor: Don't ignore assets whose names contain "StreamingAssets"
  • Editor: Drag-and-drop does not accept simple Renderers as a valid target for assigning skybox material.
  • Editor: Empty animation window no longer increases CPU usage
  • Editor: Ensure correct waking order of components when duplicating a GameObject.
  • Editor: Ensure screen width and height in player settings is at least 1
  • Editor: Expose static methods from context objects to JS.
  • Editor: Fix asset when using hideFlags to make objects persist after exiting play mode.
  • Editor: Fix changing loaded level index before OnApplicationQuit message when exiting play mode.
  • Editor: Fix console errors when inspecting player settings in debug view.
  • Editor: Fix crash and "Recursive serialization is not supported" error when loading window layouts.
  • Editor: Fix crash when importing textures on project open using AssetDatabase.Refresh call in static constructor of a Plugin class.
  • Editor: Fix error spamming: "GUI Error: You are pushing more GUIClips than you are popping .." when setting cam.targetTexture = null in OnPostRender
  • Editor: Fix errors thrown when pressing Esc to close asset label popup
  • Editor: Fix expanded state for multiple materials on a gameobject so the individual expanded state of materials will persist throughout a session.
  • Editor: Fix GO not selectable by label icon
  • Editor: Fix keyboard shortcuts (home/end/page up/page down) in object selector
  • Editor: Fix navigation keyboard shortcuts in object selector
  • Editor: Fix null ref in AudioMixer when undoing
  • Editor: Fix occasional crash on exit.
  • Editor: Fix occasional crashes when opening scene.
  • Editor: Fix occasional hang when quitting.
  • Editor: Fix OS X VBO usage that can cause performance issues
  • Editor: Fix possible crash when placing prefabs with child objects.
  • Editor: Fix race condition in DualThreadAllocator.
  • Editor: Fix race condition in threadinitialize in TLSAllocator.
  • Editor: Fix rename overlay is not removed when undoing
  • Editor: Fix stack traces not being generated correctly.
  • Editor: Fix text corruption in TextMesh components when reimporting fonts.
  • Editor: Fix that the material inspector could collapse its controls by clicking on the header. Controls are now always visible.
  • Editor: Fix the bug that assetBundle search filter doesn't work correctly.
  • Editor: Fix utility windows always loading last width & height if larger than requested width & height.
  • Editor: Fixed "ArgumentException: Invalid path" error that might occur with some custom windows
  • Editor: Fixed a bug when mouse was not processed in the Editor in play mode after building Android or iOS.
  • Editor: Fixed a crash when removing components from a prefab, but prefab instances would have depending components.
  • Editor: Fixed assert when loading scene containing reference to one of its objects that no longer exist.
  • Editor: Fixed asserts when displaying multiple objects in inspector preview.
  • Editor: Fixed clipping of multi-line text in text fields.
  • Editor: Fixed crash when script name is longer than 32 characters.
  • Editor: Fixed crash with corrupted scene when having invalid references in the list of transform children.
  • Editor: Fixed custom cursors to properly update in OS X editor.
  • Editor: Fixed custom PropertyDrawer being called with wrong SerializedProperty when property is inside a nested class.
  • Editor: Fixed editor errors when undoing the insertion of a new LOD level in LOD group.
  • Editor: Fixed error when renaming sprite with Sprite Editor
  • Editor: Fixed exceptions happening when a read-only plugin is used.
  • Editor: Fixed font corruption after asset import.
  • Editor: Fixed inspector rendering when a script changes RenderTexture.active.
  • Editor: Fixed isPlayingOrWillChangePlaymode to work as expected.
  • Editor: Fixed launch of Visual Studio for script editing, added additional logging to the editor log to troubleshoot future problems.
  • Editor: Fixed many texture/mesh related error messages to ping the source object that caused it.
  • Editor: Fixed meshes getting lost if they only lived in

New in version 4.5.3 (August 20th, 2014)

  • Brings you some new features and fixes.