Unity 4.2 has arrived
After months of development and testing, Unity 4.2 is here and ready for you to use.
As well as a host of new and exciting features, the latest version of the 4.x cycle introduces a number of important licensing changes, all designed to make as many great Unity features available to as many people as possible. Let's quickly review the goodies that Unity 4.2 brings to the world.
Unity 4.2 comes with three new platforms: Windows Phone 8, Windows Store apps and BlackBerry 10. That's right, we've doubled the number of mobile platforms Unity supports! Now it's up to you guys to create new games and port existing titles to these platforms so even more people can benefit from your creative talents.
In Unity 4.2, all users of the free version of Unity can publish to any mobile platform they wish, be it Windows Phone 8, Windows Store, iOS, Android or BlackBerry 10 without it costing a dime. In addition, Unity Pro users can use the Windows Store Pro deployment option (which includes the Windows Phone 8 and Windows Store apps platforms) absolutely free of charge.
Plus, Unity Pro users can benefit from advanced Unity features when deploying their iOS, Android or BlackBerry 10 projects by purchasing Unity iOS Pro, Android Pro or BlackBerry 10 Pro Add-On products from the Unity Store.
More free tech
We've decided to make a number of existing Unity Pro features available to users of the free version of Unity:
Realtime shadows (one-directional light only; hard shadows only).
Text-based serialization of materials, prefabs, scenes etc. for easier version control.
NavMesh baking (OffMeshLinks still require Pro).
Now, games created using the free version of Unity can benefit from realtime shadows and game actors navigating intelligently. In addition, as a developer using the free version of Unity you can cooperate with your colleagues using any version control system, because text-based serialization no longer requires a Unity Pro license.
Features and changes
So, what great new features does Unity 4.2 have to offer? Let's take a high-level overview:
OpenGL ES 3.0 support for Android:
ES3 has nicer shadow filtering, ETC2 texture compression, GPU skinning via transform feedback, HDR rendering, multiple render targets, derivative instructions in shaders etc.
Requires an ES3-compatible GPU, for example Qualcomm Adreno 3xx or ARM Mali T6xx.
Note that the official Android version does not support ES3 yet. So to test it you should install ES3 drivers directly from the GPU makers (e.g. Qualcomm).
GPU Skinning (requires Unity Pro)
Completely automatic, no custom shaders needed.
Works on DirectX 11 (via stream-out), OpenGL ES 3.0 (via transform feedback) and Xbox 360 (via memexport). Other platforms will continue to use CPU skinning.
Optimized and updated Image Effects
Stencil buffer access (requires Unity Pro). Shaders can define stencil buffer operations, for optimizations or special effects.
Static & dynamic batching for shadow casters & shadow collector pass. Note: many shadow casters can be batched even if they use different materials! They will be batched as long as the actual shadow caster shader & material properties affecting them are the same.
Shuriken Collision Event Callback Scripting Interface: Efficient callbacks on GameObjects and Particle Systems are issued when Shuriken particle collisions occur. Per particle callback data includes collision positions, incident velocities, surface normals and Collider references. Use this feature to can cause damage to GameObjects and apply forces to rigidbodies.
Integrated version control support for Perforce.
Perform common Perforce operations right inside the Unity editor (requires a Team License).
We've made the integrated version control system extensible; support for more VCS will be coming later. Or you can write your own VCS plugin, see our plugin page on github.
Platform switching, player building and asset importing can now be cancelled! How cool is that?
Custom Game View resolutions and aspect ratios: Custom settings are saved per project for easy sharing through version control (ProjectSettings/GameViewSizes.asset).
Preset Libraries: Create new libraries either as personal libraries (saved in preferences) or shared libraries (saved in the project folder). You can now save the following types as presets:
Curves in the Curve Editor and Particle System Curve Editor.
Gradients in the Gradient Editor.
Colors in the Color Picker.
Memory Profiler: Now shows objects' references to other loaded objects. This can help pinpoint why a given object is in memory.
Shader Importer: now with default textures specified. When you initially set a shader on a material or reset a material the textures will be set to these default textures.
Texture Importer: The new Alpha is Transparency setting performs color dilation to fix edge artifacts on semi-transparent textures. It is enabled by default for GUI textures.
Editor extensions can now get a callback when Unity is about to open an asset. Use this callback to open an asset inside Unity before it's opened in an external tool. Decorate a static method with the attribute UnityEditor.Callbacks.OnOpenAsset.
Deferred Lighting is now enabled on Android and iOS.
Android: Added support for Android Library Projects (no compilation support, so the libraries have to be pre-compiled).
Android: AndroidJavaProxy – Support for implementing Java interfaces in C#.
Android: The editor can now update the Android SDK if it does not match the required dependencies.
iOS: Added CrashReporter API for crash detection and extraction (requires Unity Pro).
iOS: Set up iOS Player Settings and texture import overrides and build iOS AssetBundles from the Windows Editor. Building an actual iOS player still requires Mac OS X & Xcode.
Editor: When in mobile graphics emulation mode, the editor will show a warning when RenderTexture usage is not optimal for tile-based or multi-GPU systems.
Added Bypass Listener and Bypass Reverb Zones. Use these features to turn off listener effects independently from the effects on the audio source. Thus, Bypass Effects only turns off the effects on the AudioSource, and the 3 flags can be combined freely.
Added Disable Audio property in Audio project settings to deactivate the audio system in standalone builds. Note that this also affects the audio of MovieTextures. In the editor the audio system is still on and will support previewing audio clips, but AudioSource.Play calls and playOnAwake will not be handled in order to simulate behavior of the standalone build.
Added Prepare iOS For Recording in Player Settings (iOS > Other Settings in the inspector). Turning it on will avoid the stalls that otherwise happen when starting or stopping the Microphone object.
Linux, Mac and Mecanim
Linux: Added basic webcam support for video4linux2-supported devices.
Linux: Implement headless player; this will not require Xlib (requires Unity Pro).
Mac OS X: 64 bit standalone player support (x86_64 and Universal).
Mecanim: Avatar Creation API for avatar creation from scripts at runtime or in the editor.
Mecanim: Synchronized Layers option to override state durations.
Mecanim: You can now set the default layer weight in the editor for your animator controller layer.
Many thanks to all the thousands of users who have participated in the Unity 4.2 alpha and beta program. Without your work in suggesting improvements and reporting bugs Unity wouldn't be the polished product it is today.
This is just a brief introduction to a few of the changes and improvements in Unity 4.2. See the Unity 4.2 release notes for indepth information about the myriad new features and fixes the latest version of the Unity 4.x cycle has to offer. We can't wait to see what you make with it!