Unity Engine Winter Update
With the release of Unity 5, I thought it past time to report on all of the other things that happened to the Unity engine this Winter. As with the rest of the updates this weekend, I’ve been behind!
Unity 4.6.1 Released
In December, the first update for Unity 4.6 was released. This included a number of changes:
Unity 4.6.1. is out, added WebPlayer support for 64 bit Mac OS X browsers, fixes & improvements http://t.co/WgBz2SxbD8 #unity3d
— Unity for Games (@unitygames) December 9, 2014
Features
- WebPlayer: Added support for 64 bit Mac OS X browsers.
Improvements
- AssetBundles: Added additional information about WWW.LoadFromCacheOrDownload.
- Graphics: Improved performance when allocating memory for large numbers of temporary objects.
- Graphics: Optimized culling of lights in a mostly deferred scene with a few forward-rendered objects.
- Physics 2D: Added ‘Static Collider Shapes’ to profiler for 2D physics.
- Physics 2D: Renamed Physics2D.deleteStopsCallbacks to Physics.changeStopsCallbacks to better represent its purpose (old property is now obsolete).
- Serialization: Randomize fileIDs for objects in prefabs to lower the chance of merge conflicts.
- 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.
- Windows Phone/Store Apps: Profiler shows managed memory usage.
- Windows Phone/Store Apps: Provide ArrayList.BinarySearch implementation.
- Windows Standalone: You can now embed windows standalone player into another application, simply pass -parentHWND and windows standalone application’s window will be created with specified parent. See Command line arguments documentation for more information.
In addition, a number of fixes are included. For full details, see the What’s new list on the Unity website.
Since its release, 4.6.1 has also received several patches:
4.6.1p1 was released in mid December, and featured (in addition to fixes):
- Linux: Added more font fallbacks for Latin and CJK.
- Scene View: DrawGizmo attribute now reports errors when used incorrectly, and has better docs.
4.6.1p2 was released the following week, and included the usual fixes plus:
- UI: Expose EventSystem.firstSelected to API.
- UI: Change Text.m_Text to protected and Text.text to virtual. In this way users can have control over the text contents when extending Text.
4.6.1p3 was announced the first week of January. It includes bug fixes, as well as:
- Audio: Added WWW.GetAudioClipCompressed. Allows AudioClips obtained via WWW class to be loaded into memory compressed, similar to “Compressed in Memory” import option.
- iOS: Add basic launch screen support
- iOS: Expose set pause as ObjC API
4.6.1p4 was released in mid-January, and added Oculus support:
- Oculus GearVR: Enabled low latency audio support.
- Oculus Plugin: Future Oculus Plugin releases will no longer require Direct_To_Rift.exe
- Oculus: Added VR friendly splash screen for Unity Free.
- UnityObject: It is now possible to identify the webplayer runtime version before loading content. This makes it possible to load different content based on the runtime version already installed.
4.6.1p5 was released in the last week of January.
- Support for iOS 64-bit builds using IL2CPP.
This build also removes support for the Flash build target.
Unity 4.6.2 Released
Unity 4.6.2 was released alongside the last patch for 4.6.1, and rolls the IL2CPP improvements into the base engine.
Unity 4.6.2 is out with support for iOS 64-bit builds using IL2CPP, lots of improvements & fixes. What's new: http://t.co/5Asa6avQVA #unity
— Unity for Games (@unitygames) January 29, 2015
Features
- Support for iOS 64-bit builds using il2cpp.
Changes
- The Flash build target is no longer supported from this release onwards.
Improvements
- Audio: Added WWW.GetAudioClipCompressed. Allows AudioClips obtained via WWW class to be loaded into memory compressed, similar to “Compressed in Memory” import option.
- Graphics: Added MaterialPropertyBlock.Set*() methods to overwrite existing values in a MaterialPropertyBlock instead of adding duplicates.
- iOS: Add basic launch screen support.
- iOS: Expose “set pause” as ObjC API.
- Linux: Added more font fallbacks for Latin and CJK.
- Oculus GearVR: Enabled low latency audio support.
- Oculus Plugin: Future Oculus Plugin releases will no longer require Direct_To_Rift.exe
- Oculus: Added VR friendly splash screen for Unity Free.
- Scene View: DrawGizmo attribute now reports errors when used incorrectly, and has better documentation.
- Standalone: Screen.dpi implemented for OSX and Windows standalone platforms.
- UI: Change Text.m_Text to protected and Text.text to virtual. In this way users can have control over the text contents when extending Text.
- UI: Expose EventSystem.firstSelected to API.
- WebPlayer UnityObject: It is now possible to identify the webplayer runtime version before loading content. This makes it possible to load different content based on the runtime version already installed.
Additional improvements and bugfixes are also included. The entire list of changes can be seen in the What’s new list on the Unity website. Additional infomation about iOS 64-bit support can be found on the Unity blog.
As with all Unity releases, weekly patches are available for 4.6.2.
4.6.2p1, released the first week of February, includes the usual bugfixes, plus:
Feature
- iOS: Added PlayerSettings.shortBundleVersion which is linked to the CFBundleShortVersionString stored in the Info.plist file; this relates to short public version string. PlayerSettings.bundleVersion can now be used for full incremental build version and is linked to CFBundleVersion.
Improvements
- Documentation: Updated documentation for iOS 64-bit and UI.
- iOS: Allow to set compile flags for already existing files in Xcode API.
- UI: Exposed IsAddedToManager on Behaviour.
- UI: Improved the ordering for the EventOrdering.
- UI: Optmizing Adding/Removing Graphics to a Canvas. It should be much cheaper to enable and disable Graphics now.
In the second week of February, 4.6.2p2 was released, adding more bugfixes plus:
Features
- iOS: Metal rendering support. By default Metal will be used on capable devices. You can force graphics to be OpenGL ES 2.0/3.0 only in player settings.
Improvements
- Asset Loading: Added names of affected assets to the error message when a hash collision occurs while generating asset bundles.
- BlackBerry: Passport device now supports landscape orientation.
- Documentation: Fixed broken links, particularly in UI docs.
- iOS/IL2CPP: Disabled Script Debugging option when building iOS projects that target the IL2CPP scripting backend.
- iOS/IL2CPP: Added support for async delegates (BeginInvoke/EndInvoke).
- iOS/IL2CPP: Optimize methods that use a string literal and memory used for string literals.
- iOS: Add launch screen support for iPhones.
- Shaders: Added UNITY_NO_SCREENSPACE_SHADOWS, UNITY_NO_RGBM, UNITY_NO_DXT5nm macros; better to check for these instead of hardcoding checks for “GLES or GLES3” and similar.
- Shaders: MRT support on OpenGL ES 2.0 via GL_EXT_draw_buffers.
- Shaders: Support for GL_EXT_shader_framebuffer_fetch. If you have a pixel shader with an “inout” color, it gets translated to use shader framebuffer fetch on GLES2/GLES3/Metal. Use UNITY_FRAMEBUFFER_FETCH_AVAILABLE macro in shaders to conditionally enclose that.
Unity 4.6.3 Released
The third update for Unity 4.6 focused on bring support for Metal rendering. Metal is the low-level graphical API for iOS 8, which provides a boost for games on mobile devices. Here is the list of major improvements:
Features
- iOS: Added Metal rendering support. By default Metal will be used on capable devices. You can force graphics to be OpenGL ES 2.0/3.0 only in player settings.
Improvements
- Asset Loading: Added names of affected assets to the error message when a hash collision occurs while generating asset bundles.
- BlackBerry: Passport device now supports landscape orientation.
- Documentation: Fixed broken links, particularly in UI docs.
- Documentation: Updated documentation for iOS 64-bit and UI.
- iOS: Added launch screen support for iPhones.
- iOS: Added PlayerSettings.shortBundleVersion which is linked to the CFBundleShortVersionString stored in the Info.plist file; this relates to short public version string. PlayerSettings.bundleVersion can now be used for full incremental build version and is linked to CFBundleVersion.
- iOS: Allow to set compile flags for already existing files in Xcode API.
- iOS/IL2CPP: Added support for async delegates (BeginInvoke/EndInvoke).
- iOS/IL2CPP: Disabled Script Debugging option when building iOS projects with IL2CPP scripting backend.
- iOS/IL2CPP: Implemented .NET classes: for ThreadPool, Asynchronous Sockets, WebRequest.
- iOS/IL2CPP: Optimize methods that use string literals and memory used for string literals.
- Shaders: Added UNITY_NO_SCREENSPACE_SHADOWS, UNITY_NO_RGBM, UNITY_NO_DXT5nm macros; better to check for these instead of hardcoding checks for “GLES or GLES3” and similar.
- Shaders: MRT support on OpenGL ES 2.0 via GL_EXT_draw_buffers.
- Shaders: Support for GL_EXT_shader_framebuffer_fetch. If you have a pixel shader with an “inout” color, it gets translated to use shader framebuffer fetch on GLES2/GLES3/Metal. Use UNITY_FRAMEBUFFER_FETCH_AVAILABLE macro in shaders to conditionally enclose that.
- UI: Exposed IsAddedToManager on Behaviour.
- UI: Improved ordering for the EventOrdering.
- UI: Optimized adding/removing Graphics to a Canvas. It should be much cheaper to enable and disable Graphics now.
Additional improvements and bugfixes are also included. The entire list of changes can be seen in the What’s new list on the Unity website. Additional information about support for iOS 8 including Metal and IL2CPP enhancements can be found on the Unity blog.
The patches for Unity 4.6.3 released to date include:
4.6.3p1, on the 26th of February, fixed bugs and added:
Features
- Support for Intel RealSense plugin in Unity Free.
Improvements
- iOS/Metal: Optimized static batching and dynamic geometry handling.
The first week of March brought 4.6.3p2, which along with fixes added:
- Android: Parsing device specific xml font configurations to determine system/fallback fonts.
- Editor: Android – Added the ability to configure JDK path in the Editor preferences
And this morning, 4.6.3p3 was released, bringing the following support to Unity:
- iOS/Metal: Defer [CAMetalLayer nextDrawable] till it is actually needed (should help occasional framerate hiccups).
- iOS: Short term fix for input stuttering.
- iOS: Xcode 6.3 support.
Unity 5 Information
With the release of Unity 5, some blog posts have been added expanding on the process of upgrading to Unity 5 and the natural transition that it brings. Here are some notable ones:
- Unity blog: The AssetStore and Unity 5
- Unity blog: Extending Unity 5 rendering pipeline: Command Buffers
- Unity blog: Assembly Updater: Faster API usage detection
- Mozilla blog: Unity 5 brings one-click WebGL export
#Unity5 Brings One Click #WebGL Export!#Mozilla blogpost: http://t.co/MVJPM1aItH
Video: https://t.co/YuAaJ8hZlo#GDC2015 #GDC15 #GDC #MozPk— Mozilla Pakistan (@MozPk) March 12, 2015
Finally, this useful Upgrade Guide to Unity 5 can help developers transition their projects to take advantage of the new features and improvements to the engine.
Other Announcements
Microsoft has released Visual Studio Tools for Unity, an upgrade from UnityVS to a a more robust package for coding and debugging. This works with all versions of Visual Studio, including the free Express version.
Unity announced that they have partnered with Microsoft to offer Unity for Xbox One, free to all registered ID@Xbox developers with development kits. The current release of Unity for Xbox One is based off Unity 4.3, but will soon be transitioning to Unity 5. To learn more about the ID@Xbox program for independent developers, head over to www.xbox.com/id to sign up for Microsoft’s independent developer publishing program for Xbox One.
Similarly, Unity and Sony have partnered so approved PlayStation developers can get a PlayStation ready versions of Unity Pro for free. As with the Xbox One build, above, the Unity for PlayStation build also allows direct builds to those platforms; to build to any other system with Unity Pro, you will need a standard Unity Pro license. If you are interested in becoming a PlayStation developer, please contact your PlayStation representative.
Starting with Unity 4.5.3, Unity announced the full support for Windows Phone 8.1 and Universal Windows Applications. This means with a single build, developers can target all Windows devices – desktops, laptops, tablets and phones, as long as they are running Windows or Windows Phone 8.1 (or higher). You can read more about Universal Windows Application support on the Unity blog.
An update of the Unity Test Tools has been released. As usual, the update is available on the Unity store, and the source code is also available via Bitbucket.
Unity released a new set of Standard Assets for Unity 4.6 during the beta for that release. They are included with all versions of Unity after 4.6, but if you are still using a prior version you can download these new sample assets from the Unity store.
Google has released a beta version of a Google Analytics Plugin for Unity. The plugin allows game developers to easily measure user interactions within their Unity games on all platforms, without having to write separate implementations. The plugin can be accessed on Github.
In addition to Google’s efford, Unity has started a beta of their own Unity Analytics program. Unity Analytics gathers data from your game and transfers that data to the cloud, where its processed and stored so you can retrieve it in the included Dashboard. This first release includes simple, high-level analytic data such as active users, retention, and revenue. In the future, more research, data, and analytics will be added, with an eye towards the larger goal of democratizing game success. You can find more information about beta on the Unity Analytics forum.
The Unity Answers site has been improved, providing a better way to get your questions answered (and for experts to answer your questions). The improvement process began in January, and still ongoing.
At GDC 2015, Unity announced a new secondary education initiative. This program will include no-charge educational licenses with all the features and power of the Unity 5 engine and editor; a 40 page Professional Skill Standard cross-referenced to academic standards like Common Core, Next Gen Science Standards, 21st Century Skills and STEM clusters; and a 200+ page Curricular Framework that covers the entire professional pipeline from design and development, through deployment. This initiative will help educators and students learn more about game development and how their schoolwork can translate to professional employment.
Oculus recently noted several of the recent improvements to Unity’s integration, saying “Unity continues to be one of the easiest ways to build high-quality VR experiences for the Rift and Gear VR.” The Oculus integration is supported in Unity 4.6 and later, and can be downloaded from the Oculus Development Center.
Get It
As always, the latest version of Unity can be downloaded for free. The hotfixes can be downloaded from the Unity forum.
Recent Comments