Unity 4.6 Available
Unity 4.6 Released
Unity Technologies released Unity 4.6 over a week ago (sorry for the delay!), which includes the new Unity UI system. In addition to being included in the Unity package, the source code for the UI System was released as well!
— Unity Technologies (@unity3d) November 26, 2014
- New UI System: Design UIs for your game or application using Unity’s powerful new component based UI framework and visual tools.
- Create UIs in screen space with or without perspective and with support for pixel perfect alignment, or in world space for simple creation of in-world interactions.
- The layout system combines anchoring to sides, corners, or custom points in the parent container with the ability to stretch to a percentage or full extent of the parent width or height.
- Simple Scene View handles allows intuitive visual control and tweaking of the positional behavior.
- Build up designs and customized controls composed of image, text, masking, and effects. All graphical components have full support for custom materials and lighting.
- Built-in controls for buttons, sliders, scroll views, input fields and more have been designed for full cross platform deployment, supporting touch controls and mouse as well as directional navigation such as arrow keys or gamepad controls.
- The UI system integrates with Unity’s animation smoothly, meaning that you can use state machines and other animation features to control your UI elements and panels.
- The UI system is designed to be extensible so that it can meet the needs of your projects. Combine existing UI elements together to create new controls, extend existing controls, or write new controls from scratch.
- Easily set up callbacks for your UI controls in the Inspector using the new persistent delegate system. A lot of functionality can be hooked up to your UI with no programming needed!
- New Rect Tool: In previous versions, rect handles were used only in 2D mode and only for SpriteRenderers. With the introduction of the new UI system that is a hybrid of 2D and 3D, more explicit control is needed to be able to efficiently position elements. The new Rect tool in the main Unity toolbar can be used for sprites, UI elements, and any other object as well. The rect handles have also received an overhaul to be more consistent with the other tools, and to be more useful for a wide variety of uses.
- Rect handles now support Pivot/Center mode as set in the toolbar as well Local/Global mode as set in the toolbar.
- Rect handle squashing (holding Control/Command while dragging a side) now supports preserving volume rather than area when holding down Shift.
- Rect handles for objects that appear small in the Scene View now show a disc handle that can be used to move the object in the plane of the rect. When zooming further in, the disc will fade out as the normal rect handles fade in.
- Extensible Event Messaging System: Use and extend the new Event System framework. The system is used for the new UI to send and receive events, but it can be extended to support custom input devices and custom event logic.
- Inbuilt support for touch and standalone.
- Supports 2d, 3d, and UI components.
- Extensible; add custom input handling and custom events.
- Persistent Delegates (Unity Events): A new way to set callbacks via the UI and have them be built into a player. This helps non-programmers quickly add functionality to your application within the editor.
- New Android Build Targets: Support has been added for x86 as a build target. Fat binary support (x86+ARMv7) is supported as well and is the new default.
- Added smart-allocating GetComponents method which fetches components of type T and grows the list as needed. Non-generic version that supports interfaces has also been added.
- Added StopCoroutine(Coroutine) function.
- Added callback ‘OnTransformParentChanged’ to MonoBehaviour. This is called whenever a transform, or one of it’s parent transforms has been reparented.
- Added Transform.SetParent method that optionally allows setting the parent transform without changing the local position, rotation or scale. For RectTransform it also doesn’t change the sizeDelta.
- Implemented and exposed Transform.TransformVector and Transform.InverseTransformVector so it’s no longer necessary to use localToWorldMatrix and WorldToLocalMatrix just to transform vectors with scaling included.
- Added Vector2.SmoothDamp to be consistent with Vector3.SmoothDamp, Mathf.SmoothDamp, and others.
- New API TouchScreenKeyboard.isSupported to check if platform supports on screen keyboard.
- Added new WillFlushUndoRecord callback to Undo class.
- Added Input.touchSupported API: it tells whether the device on which application is currently running supports touch input.
- Reorganized GameObject creation menus with categories such as 3D Object, 2D Object, Light, etc. as well as improved functionality.
- “Create Empty” now also appears in the hierarchy Create dropdown.
- The context menu for Game Objects in the hierarchy can now be used to create new Game Objects as children.
- More details on the error message when failing to add a Component due to already having another component that is incompatible.
- If during play mode a hierarchy window takes too long to fetch new data a warning icon will appear to advise users frame rate could be affected based upon the chosen hierarchy sorting.
- Editor: Made Scene View camera near and far clip planes use constant multipliers of size rather than four fixed ranges with fixed values that cause popping when transitioning over the thresholds of those ranges. The new ranges are about the same for close and medium zoom but has significantly larger near clip planes when zoomed far out, which reduces z-fighting.
- Made main Game View used by CameraEditor visualizations and the Canvas be the last focused Game View rather than just the first Game View found.
- Made sure the screen manager uses the correct game view size in the editor, which is only known on the managed side.
- Increased Texture anisotropic level limit to 16 in the Texture Inspector.
- Exposed “Generate Mip Maps” option in the Texture Inspector when in Sprite mode.
- Renamed TextureImporter spritePixelsToUnits to spritePixelsPerUnit and made old property obsolete. The old name was misleading.
- Curves can now be renamed in the animation window.
- Made SerializedProperty.displayName public.
- Enum options generated from SerializedProperty are now nicified just like for all other enum fields in the Inspector.
- Added SerializedProperty.enumDisplayNames that return the names for enum values as they’re shown in the Inspector.
- Animation of PPtr types are now supported in the animation window (textures, sprites, materials etc).
- SendTransformChanged is now only sent to transforms that are animated. Siblings with no animation will not receive SendTransformChanged.
- Default SpritePacker policies will automatically pack mipmapped sprites (padding power – 2).
- Aniso level for sprites with mip-maps now defaults to 16.
- SpritePacker will flood the atlas instead of adding 1 pixel borders to sprites.
- A new pixelsPerUnit property has been exposed on the Sprite class.
- Support for profiling Intel GPU using the Unity Editor.
- Added support for BGRA textures.
- T is now assigned as default shortcut key for Rect tool. The Sprite Editor trim shortcut key defaults to Shift-T to avoid conflict with the Rect tool.
- Rect handles now do non-uniform scaling by default for consistency with a large range of other applications. Hold down shift to scale uniformly.
- Renamed spritePixelsToUnits to spritePixelsPerUnit in TextureImporterSettings.
- Stencil buffer is now available in Unity Free.
- Sprite Packer is now enabled by default.
- New Sprites now have mip-maps enabled by default.
- Fixed occasional argument out of range exceptions when using Scene View tools.
- Picking of locked scene view layers is now prevented.
- ObjectSelector is now ensured to default to the Asset tab when selecting PhysicsMaterial2D objects.
- Fixed an issue where render texture was not being created due unsupported anti aliasing value on devices like Surface RT.
- Compressed sprites are no longer deformed on devices that support NPOT textures.
- Fixed issue where changing the animated property to be Rect Transform Scale and trying to transition between 0 and 1 failed.
- Fixed crash when creating an AnimationClip on a humanoid rig.
- Fixes crash when previewing transitions on an Animator with UnscaledTime update mode.
- Unity no longer crashes if a mesh is dragged onto a SpriteRenderer.
- Fixed issue where 2D colliders break when used as prefab children.
- Windows Phone 8: Fixed a race condition in TouchScreenKeyboard which would cause “.active” to return false just after the keyboard was opened.
- 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.
Unity 4.6.0p1 Hotfix
Unity also released the first weekly patch for 4.6.
— Unity Technologies (@unity3d) December 4, 2014
- UI: Encapsulate children mesh bounds when calculating Root Bounds. Also cache the value so we don’t calculate every time we draw.
- UI: Performance optimizations. Optimized UI batching, text rendering and reduced amount of editor-only allocations.
- UI: Standalone input module now leaves keyboard selected object selected. Mouse and Keyboard input are now orthogonal. Clicking with the mouse will move selection to the clicked element.