Unity 10-Year Summer Roundup!
This summer, the Unity engine turned ten! The celebrations kicked off during the Unite conferences, but came to a head as they released an animated webcomic!
The comic celebrates some of the milestones of the engine over the last ten years, and features Unity’s iconic characters: Dr Charles and Unity Chan!
There have been a lot of changes since our last roundup for Unity. Let’s take a look at the most recent release:
At the beginning of September, the latest version of Unity was released. Unity 5.2 integrates Unity Ads, Unity Analytics, Unity Cloud Build and Unity Multiplayer inside the editor as part of a new Services Window. It also includes a huge number of changes:
- 2D: Ability to rotate sprites while Sprite Packing to save atlas space
- Android: Experimental support for IL2CPP scripting backend
- Android: Audio – Enable OpenSL fast path for devices that support FEATURE_AUDIO_LOW_LATENCY
- Android: ETC1 Compression for Sprite Atlases
- Audio: Ability to set custom rolloff curves for an AudioSource at runtime via script
- Audio: Spatialization API for audio plugins (see SDK and example)
- Cloud Services: Access control list support
- Core: Application.UnloadLevel allows unloading of scenes while the game is running
- Graphics: Added CullingGroup API, which allows you to specify a large set of bounding spheres that are integrated into the culling pipeline and subjected to frustum and occlusion culling
- Graphics: Added option in player settings for configurable vertex compression
- Mecanim: Playable API supports creating Animation blending graphs at runtime
- Mecanim: 3ds Max Auto Mapping and T-Pose using Auto-Configure will try to detect if it is a Biped
- Mecanim: Translation Depth of Field for Humanoid bone animation
- Multi Scene baking of Lightmaps
- Plugins: Expanded low-level graphics plugin API
- Out of the box support for VisualStudio Tools for Unity (aka UnityVS)
- Performance: CPU side rendering performance optimizations across the board
- Performance: Improved performance of LoadAssetAsync
- Performance: Particle rendering optimizations (especially for VR)
- Performance: Rendering on Linux uses the same main+render thread setup as on other platforms
- Performance: UI now uses multithreaded batching & geometry generation backend
- Physics: Added parameter QueryTriggerInteraction to all physics queries (raycast, spherecast, overlap)
- Physics: Expose CharacterController.skinWidth parameter to scripts
- Physics: Expose impulse applied at contact (see Collision.impulse)
- Physics: Support scaling of vehicles
- Shaders: Fixed Function shaders work on all platforms now (including consoles)
- UI: New 2D Rect Mask
- UI: New Dropdown control
- UI: New Scroll View menu item and improved support in ScrollRect component for scrollbars
- Unity Ads: Enable and configure Ads from the Unity Connect window in the Editor
- WebGL: Experimental support for WebGL 2.0 (not yet supported in any released browser)
- Windows Store Apps: Universal Windows Platform app (Windows 10) support
- Editor: Asset Store window is now a part of the default window layout
- Editor: Remove legacy Mac OS X corner window resize behaviour
- GI: Set default BounceScale to 1
- Graphics: Material.CopyPropertiesFromMaterial also copies shader keywords and render queue now
- IL2CPP: Make engine stripping in iOS/WebGL a separate setting (PlayerSettings.stripEngineCode) from Mono stripping levels
- Introduce EditorSettings.projectGenerationUserExtensions & EditorSettings.projectGenerationBuiltinExtensions
- Particles: Particle geometry is generated in world space now (used to be in view space before)
- Reflection Probes: Are rendered in a separate deferred pass when using deferred shading
- Scripting: Removed hexadecimal color string support from Color and replaced with ColorUtility
- Shaders: Can not create fixed function shaders using “new Material(string)” anymore, must come from assets or be fully precompiled in the editor
- Shaders: Changed UnityGlobalIllumination, Unity_GlossyEnvironment, FragmentGI function signatures
- Substance: The communication between Unity’s MainThread and the Substance Thread was completely rewritten to better decouple Substance processing from Unity’s regular operations and to avoid stalling the MainThread
- Terrain: Changed the default hotkey bindings for terrain tools to F1-F6
- UI: CanvasRenderer can now take multiple Materials. Like a MeshRenderer each material refers to a SubMesh of the configured Mesh
- UI: CanvasRenderer now takes a Mesh instead of List this allows for the use of imported meshs as part of the UI
- UI: UI.Text now accounts for trailing white spaces when performing horizontal alignment
- WebGL: Make release builds always fully optimized
- Windows Store Apps: AppCallbacks.LoadGfxNativePlugin has been deprecated
- 2D Improvements
- Allow sprites to be dragged into scene view in 3d mode. Add temp GO while dragging for visual feedback similar to when dragging prefabs/model into scene view
- Frame selected command (F) now works in the sprite editor window for the selected sprite rect
- Implement undo functionality for sprite editor window’s slice menu
- New grid slicing method that uses column and row count
- Pivot snapping on sprite frame rect in sprite editor window only happens when Ctrl is pressed while mouse dragging the pivot handle
- Provide a custom pivot field in the slicing menu for the sprite editor window
- Zooming on sprite editor window’s texture will zoom towards mouse cursor
- Editor Improvements
- Added RunOpenPanelWithFilters API
- Better error message when “The classes in the module cannot be loaded” is thrown
- Improved Compute Shader inspector; now lists errors & warnings similar to regular shader inspector
- Improved Export Package window (now uses a proper tree view)
- Improved shader inspector performance when there are many errors shown
- Make sure ObjectField and Object Selector shows icons for game objects and prefabs
- More “create new shader” templates under assets create menu (PBS surface shader, unlit shader, image effect shader)
- Selection.selectionChange callback triggered when selection changes
- Show proper cubemap preview instead of icon in large preview ObjectField
- When in 2D mode, the camera bounds for the main camera is always visible when it is in orthographic mode
- Graphics, Lightmapping and Shader Improvements
- GI: Added progress bar for GI Cache -> Clean Cache progress status
- GI: Allow ambient intensity higher than 1
- GI: Size of the last lightmap is now reduced to pack the instances more tightly and not waste space
- Graphics: Add SetUVs to Mesh API, it takes a UV channel, and a List of either Vector2, Vector3, or Vector4 as arguments
- Graphics: Added a quality setting ‘Shadow near plane offset’ to allow working around shadow pancaking artifacts
- Graphics: Added CommandBuffer.IssuePluginEvent to allow invoking native code plugin from a command buffer
- Graphics: Added Cubemap.mipmapCount
- Graphics: Implemented object naming for D3D11, so textures and meshes will pick up the correct name in external graphics debuggers (e.g. RenderDoc, NSight etc.)
- Graphics: Memory saving for meshes with < 300 vertices if dynamic batching is off
- Graphics: New GL.IssuePluginEvent override allows invoking a specific callback in a specific native plugin
- Graphics: Windows Store Apps 8.1 and Windows Phone 8.1 now support MSAA
- Image Effects: Added option to disable ‘no fog on skybox pixels’ behaviour in GlobalFog effect
- OpenGL: Added -force-clamped argument that prevents use of all available extensions when used together with -force-glcoreXX or -force-glesXX
- OpenGL: Added -force-gles editor and standalone player to automatically run with the best version of ES supported by the platform
- Particles: Mesh particles now support the Texture Sheet Animation settings
- Reflection Probes: when using Deferred Shading, the reflection probes are now rendered per-pixel (instead of each object only being affected by one or two probes)
- Shaders: Added finalgbuffer and finalprepass modifiers. They work in the same way as finalcolor does, but are used by the deferred and prepass base paths respectively for altering what would be written into the gbuffer
- Shaders: decal:add surface shaders now generate code for deferred and legacy deferred paths if finalgbuffer and finalprepass modifiers are specified
- Shaders: Now #pragma skip_variants skips user variants as well
- Shaders: Procedural Skybox shader now has selectable options for Sun Disk: None (fastest), Simple (should be close to the current sun disk), High Quality
- Shaders: Make it possible to use UNITY_SAMPLE_SHADOW macros when SHADOWS_NATIVE keyword is not explicitly defined
- Mecanim Improvements
- Added a “destructive action” prompt when deleting blend tree nodes, so that the behaviour is consistent between StateMachine and BlendTree graphs
- Added AnimatorStateInfo.speed and AnimatorStateInfo.speedMultiplier
- Added the possibility to create AnyState Transitions to the entry node of a state machine
- Added tracking of missing or invalid StateMachineBehaviours in the StateMachine and State inspectors
- Adding a child blend tree will use the default blend tree parameter, not the blend parameter of the parent
- Alt-drag works in BlendTree graph view now
- BlendTree API publishes useAutomaticThresholds
- Can create new clip from selected clip/take in Animation importer
- Creating a blend tree in a controller with no float parameter will now automatically add a new float parameter named Blend
- Expose Animator.IsInitialized in scripting API
- Fixing empty State Machine Behaviour after compilation error
- Import humanoid animation warnings have been cleaned and improved
- Improved display of transition previewer
- Improved Humanoid animation jitters (Humanoid Oversampling)
- Renaming Animator parameters updates transitions using those parameters
- Retargeting quality for humanoid import animation
- SetBoneLocalRotation allows Animator.SetBoneLocalRotation to let you modify the local rotation of humanoid bone during IK passes/OnAnimatorIK() callback
- Networking Improvements
- Added OnLobbyServerPlayersReady callback to the NetworkLobbyManager to allow users to perform custom behaviour when all the players in the lobby are ready
- Added support for client-side authority for non-player objects (NetworkServer.SpawnWithClientAuthority)
- Networking: Added support for network [Command] calls from non-player objects with authority on a client
- Networking: Added the ability for the NetworkTransform to validate on the server, the movement of authoritative client objects
- Networking: Added NetworkDiscovery component to network HLAPI. This exposes the network transport layer local discovery function to HLAPI code, and allows Unity games on a local network to find each other
- Terrain Improvements
- A warning message will be printed onto the console window if there are too many vertices in a detail patch
- Increased the vertex limit to from 50k to 65k
- Deferred and legacy deferred rendering paths work again with Terrain
- Made it easier to work with height maps created by World Machine
- Added an option to vertically flip the height map when importing or exporting a raw file
- Now 4097×4097 raw heightmap can be imported
- Now a TerrainData object embedded into a scene (created by script) allows scene objects being selected as tree prefabs
- SpeedTree: Negated tangent vectors to match those in the SpeedTree Modeler
- SpeedTree: Now shader has less variants due to the merge of some geometry types
- Trees painted on the terrain now are scaled by the prototype’s transform scaling
- Other Improvements
- Android: ETC2 is now the default compressed texture format for RGBA textures instead of RGBA4444
- Audio: Improved preview rendering of audio clips, especially for clips that are very short
- Audio: Improved inspector of AudioMixer performance parameters
- Audio: One-shot sounds now also contribute to the data read by AudioSource.GetAudioData/GetSpectrumData
- C# Project Generation: included extensions and rootnamespace now configurable in ProjectSettings->EditorSettings
- C# Project Generation: only one set of project files will be generated, based on what the preferred external editor is
- Fonts: CharacterInfo properties are now writeable
- iOS/IL2CPP: Enable generic sharing for types and methods whose generic parameters have constraints
- iOS/IL2CPP: Enable MakeGenericType and MakeGenericMethod for types and methods whose generic parameters have constraints
- iOS/IL2CPP: Improve conversion time of IL2CPP, especially in generics heavy code
- iOS: Added build number to Player Settings
- iOS: Added onBannerFailedToLoad delegate to iOS.AdBannerView
- iOS: Added support of asset tags and folder references to the Xcode API
- Linux: Enable experimental GL core profile mode (via -force-glcore and friends)
- Physics: Now you can set negative WheelCollider.forceAppPointDistance
- Physics: Renamed ‘CollisionDetectionMode2D.None’ to ‘CollisionDetectionMode2D.Discrete’ (scripts will be auto-updated)
- Scripting: Application.isShowingSplashScreen checks if Unity is currently showing a splash screen
- Stacktrace logging: Allow to log full (native/managed) stack trace when log is printed, the option is available in the console window in top right corner popup menu
- Substance: “visibleIf” expressions set in Substance Designer are now properly evaluated (for inputs only) and inputs are now displayed or hidden accordingly
- Substance: Dynamic parameter in Substance graphs are now evaluated using native code instead of bytecode on Windows / OSX / Linux, resulting in faster texture generation
- Substance: Feature parity with Substance Designer 5.1
- Substance: Runtime generation of procedural materials is now supported on PS4 and XboxOne consoles
- TrueTypeFontImporter: References to other font assets to be used in the project as fallback are now shown in the TrueTypeFontImporter inspector
- UI: Add callback to MaskableGraphic for when it becomes culled via the 2D culling API
- UI: Added support for EventType.ExecuteCommand “SelectAll” to InputField so that it works in the Editor
- UI: Added underloaded function call for RectTransformUntility.RectangleContainsScreenPoint so a camera is not required
- UI: Make the default value for a slider / scrollbar be 0
- UI: Remove (Pro Only) from UI shaders as they can be used on any version of Unity 5
- Version Control: Bottom most version control info bar in inspector shows separate state for meta file if different from asset
- Version Control: Icon overlays for version control is surrounded by parenthesis in case an asset and its meta file’s state is out of sync
- Version Control: Reduce unnecessary checkouts
- WebGL/IL2CPP: Improved stripping resulting in smaller build sizes
- WebGL: Resolution set in HTML file will no longer be overridden by PlayerSettings
- Windows Store Apps/Phone 8.1/Universal Apps: Unity will generate projects in a consistent way with Visual Studio
- Windows Store Apps/Phone 8.1/Universal Apps: Unity will properly use project name instead of hardcoded “Template” word, when creating App.xaml, App.xaml.cs, MainPage.xaml, MainPage.xaml.cs, AssemblyInfo.cs files
- Windows Store Apps: InvokeOnAppThread/InvokeOnUIThread now will not cause deadlock, when called with sync=true multiple times in one chain
- Windows Store Apps: supported orientations are now populated to manifest
- Windows Store/Phone will now show animated Unity splashscreen instead of the static one
- XboxOne: Improved performance for certain audio operations: converting float to PCM16 formats, mixing audio for one speaker configuration to another, and linear resampling
- XboxOne: Unity is now build using the June 2015 QFE 1 XDK. You will need to have this XDK installed on your PC and use the matching or a later recovery
Full details about the changes in Unity 5.2 can be found in the Release Notes.
Unity’s partners were also excited about the release of 5.2, as it adds VR build support for Sony’s Project Morpheus, improvements to Allegorithmic Substance integration, and tighter Microsoft Visual Studio integration!
Project Morpheus build option arrives in Unity 5.2 http://t.co/gkXGdkOX9S
— Gamasutra (@gamasutra) September 8, 2015
— Allegorithmic (@Allegorithmic) September 8, 2015
— Unity Technologies (@unity3d) September 8, 2015
Back on June 9, Unity released version 5.1, which focused on enhancing multiplatform support, a unified development experience for VR platforms (such as the Oculus Rift), and new functionality with the Unity Multiplayer networking solution.
- New multiplayer networking feature introduced (see the manual and UnityEngine.Networking namespace in the script reference for details)
- New network components and NetworkBehaviour base class for network aware scripts.
- New NetworkManager to control and configure multiplayer games.
- Added integrated support for Oculus Rift in Editor and Standalone Players (see the Manual and UnityEngine.VR namespace script reference for details)
– VR optimization: Render shadows only once and share between eyes.
– VR optimization: Cull once for both eyes.
– Support for Oculus 0.6.0-beta runtime
- New HDR Color Picker
– Improves the Standard shader workflow for changing the emission color property.
– The emission color can now be animated from the animation window.
Using scripting API to change emission will now be reflected in the shader gui.
– Color Presets now also support HDR colors. Saving a HDR color will overlay a lowercase ‘h’ on the preset swatch.
– Color property fields can now be customized with the ColorUsageAttribute (show/hide alpha value, is HDR)
– Added Hex color field
- Graphics: Crunch texture compression format on platforms which support DXT. This is a lossy compression that is both small on disk/download and compressed (DXT1/DXT5) for the GPU.
- Graphics: Experimental support for OpenGL 4.5 and ES 3.1 on Windows. Use -force-glcore, -force-gles(20|30|31|31aep) arguments to enable. This enables testing OpenGL ES 3.1 features on desktop.
– Graphics: OpenGL ES 3.1 support on Android
– New graphics levels (OpenGL ES 3.1, OpenGL ES 3.1 + AEP)
– Compute shaders
– Geometry shaders
– Tessellation shaders
– Advanced blend modes
- New runtime assertion library under UnityEngine.Assertions namespace. The library provides a set of methods for setting assertions in your code.
– The method calls will be conditionally compiled out from non-developer’s builds.
– The conditional compilation is controlled by UNITY_ASSERTION define.
– Defines DEBUG and TRACE are now also defined for non-developer’s builds.
– A wrapping library providing extension methods is also available under UnityEngine.Assertions.Must namespace.
- Unity Analytics: New, built-in Analytics functionality introduced (currently in “Preview”), under the UnityEngine.Analytics namespace. Basic Integration can be completed by inserting a unique ProjectId into “Cloud Project Id” in PlayerSettings.
- The ProjectId is a unique identifier that links your Editor project with the data on your Analytics dashboard, and is generated during the Basic Integration process.
– Go to http://analytics.unity3d.com to get started with Basic Integration, as well as access the relevant documentation and integration instructions.
– Additionally, the library provides methods to track Monetization, Custom Events, and User Attributes (otherwise known as Advanced Integration options).
- Home Window Login integration allows you to login or work offline using the home window or command-line arguments.
- Home Window License integration allows you to validate your serial and activate your copy of Unity using the new 5.1 json licensing API through the home window.
Backwards Compatibility Breaking Changes
- Animation: Change the behaviour for humanoid controller with generic clip animating a human transform
- Physics: Modifying the HingeJoint Limit, Motor, Spring properties will no longer automatically enable the them
- XboxOne: Unity is now built with the April 2015 XDK
- Animation: Added warning message for transitions without any condition
- Animation: Animator.speed can only be negative when the recorder is enabled. Now when the recorder is offline we do clamp the speed to 0 to avoid negative speed.
- Animation: Transitions now have a fixed duration by default. Before Transition duration was in normalized time.
- Animation Window: Dope sheet editor uses Command instead of Control for toggle-selecting on Mac OS
- Animation Window: Double-clicking a key in the curve editor now selects the whole curve. Double-clicking part of the curve still creates a new key at this position
- Editor: Incremental naming of instantiated GameObjects to use format: MyName, MyName (1), MyName (2)
- Editor: Renamed and added new GizmoType enum values to be more explicit about how they work with selection hierarchy.
- Editor: Ensure GameView is un-maximized on Editor start up.
- GI: Auto baking is now disabled by default in 2D projects.
- GI: Change the “continuous baking” label to something shorter and better. Is now “Auto” with a tooltip added.
- GI: When hard shadows are selected baking will use a directional spread of 0 and a point radius of 0. Also, the UI for spread/point are disabled when shadows are not set to soft.
- Graphics: Deprecated player settings useDirect3D11, targetGlesGraphics, targetIOSGraphics properties. Use SetGraphicsAPIs and friends.
- Graphics: LOD fade mode is now assigned to the whole LODGroup as None, Cross-fade or SpeedTree.
- Graphics: Make Material(string) constructor script API obsolete with a warning. Support for creating fixed function shaders at runtime will be removed in the future.
- Input: Default binding for ‘Fire3’ in new projects changed from Left Cmd to Left Shift, for benefit of Windows user experience.
- iOS: By default iOS builds now only support Metal & OpenGL ES 2.0. If you need OpenGL ES 3.0, you can specify that under player settings.
- Networking: The NetworkView component from the old network system was marked as deprecated.
- Physics: Enabling the HingeJoint Motor overrides the spring, if the spring was enabled
- Physics: HingeJoint MinBounce and MaxBounce are replaced by a single ‘bounciness’ for both limit ends. The new bounciness will be set to the largest of the old MinBounce and MaxBounce.
- Physics: New HingeJoint initialization fixes target angle being measured incorrectly.
- Shaders: OpenGL ES 3.0+ will use a new shader compiler backend. Based on HLSL + HLSLCrossCompiler + glsl-optimizer. This enables compute shaders on ES3.1 and other modern features.
- Substance: Substances are now supported in both 32b and 64b iOS simulator builds.
- Terrain: TerrainData.alphamapTextures is now exposed to script.
- Version Control: Allow edit of imported/native asset with respect to meta/asset file being checked out
- WebGL: Memory size is now written to the generated HTML to make it easier to change it without rebuilding the player.
- WebGL: Player Settings UI is now consistent with other platforms.
- WebGL: Static batching is now disabled by default to improve build sizes.
- WebGL: Switch audio format used to AAC.
- Android: Apply DeviceDefault theme if available, respect user’s theme
- Android: Improved soft input dialog
- Android: New Sensor/rotation code that tries to figure out ‘reversed rotation devices’
- Animation: Added Animator.CrossFadeInFixedTime and Animator.PlayInFixedTime to support fixed time manual transitions.
- Animation: Added AnimatorController.GetBehaviours() API function to simplify how user can query their behaviour on the asset
- Animation: Added dragging controls on the time bar and on the background of the blending in the transition inspector
- Animation: Added options “Add Motion”, “Add Blend Tree” and “Delete” to contextual menu for blend tree
- Animation: Allow animator window to be locked
- Animation: Deleting a layer that has other layers synchronized on itself will also delete all the dependent layers (with a prompt)
- Animation: Do not allow scene objects in AnimatorController’s Motion ObjectField
- Animation: Exposed ApplyBuiltinRootMotion to script
- Animation: Retargeting import warnings are removed from the console and are now available in the model importer warning foldout
- Animation: Transition can now be copy pasted
- Animation: Transition duration can now be specified in absolute time
- Animation: You can now control your AnimatorState.speed/mirror/cycleOffset at runtime with controller’s parameter
- Animation Window: Copy-pasting keyframes in animation window curve view and between clips.
- Animation Window: Curve editor supports range selection with shift-click
- Animation Window: Curve editor supports toggle selection with command-click/control-click on Windows
- Animation Window: Direct editing of key values in curve editors. Use Enter/Return or context menu to start editing selected keys, Tab to switch between fields, Enter/Return to commit, and Escape to cancel editing
- Animation Window: Dope sheet editor supports Control-click as well as right-click on Mac OS
- Animation Window: Dragging a curve no longer loses the current selection
- Animation Window: Keyframe selection is synced between dopesheet and curve view.
- Animation Window: Lock button that locks the selection to currently selected clip and Animator.
- Animation Window: Slightly increased the clickable radius for keyframes in the curve editor
- Animation Window: When creating new clip from animation window, default to previously used path
- BuildPipeline: There will be fewer differences between the exported data files from subsequent builds of your project when using the same version of Unity
- Curve Editor: Wrap mode enum popup modified to appear as a little gear, which fits nicely in the margin without being cropped.
- Documentation: Show “construct type” for class/struct/interface
- Editor: Added extensive support for copy/pasting colors: Copy/paste from focused color field, from context menu for color field, from color picker (with no text selected) and from hex field.
- Editor: Adding an icon to an EditorWindow title is now exposed by using the GUIContent ‘titleContent’ property (the old string ‘title’ is now obsolete)
- Editor: Create sprite animation clip from project window context menu.
- Editor: Improved grid in Scene View
- Editor: Introduced CreateAssetMenu attribute for ScriptableObject-derived types
- Editor: Introduced HelpURL attribute, for setting custom documentation URL for user-authored classes.
- Editor: Simple expression evaluator for all number fields. Supports + – / * % ( ) operators.
- FrameDebugger: Shader blend, depth and raster states will be shown for draw calls.
- GI: Final gather was moved into a separate stage
- GI: Reduce the amount of GI related information that is written to the log file
- Graphics: Add CommandBuffer.DrawProcedural and DrawProceduralIndirect.
- Graphics: Added a way to specify graphics APIs explicitly in player settings (defaults to “automatic” for each platform)
- Graphics: Added SetPixels32/GetPixels32 to Texture3D.
- Graphics: Command Buffers can be set on Lights, see LightEvent enum and Light.AddCommandBuffer.
- Graphics: Performance improvements on DX11 when many non-batchable objects are in view.
- Importer: Added warning foldout to keep trace of all import warning in the ModelImporter animation tab.
- Math: Rect(Vector2, Vector2) constructor overload added
- Miscellaneous: Resolution.ToString() implemented
- MonoDevelop: Including MonoDoc XML files for showing C# Intellisense tooltips in MonoDevelop
- Physics: Add motion constraints to Rigidbody2D
- Physics: Added HingeJoint BounceMinVelocity
- Physics: Optimized performance of ‘OnTriggerStay’ messaging.
- Physics: Rigidbodies connected to a HingeJoint will now automatically be woken up when the joint is updated.
- Plugin Inspector: You can now select multiple plugins and change compatible platforms
- Profiler: Change ms markers in timeline view to use same label style which makes it also properly visible in both skins.
- Profiler: Don’t show FPS for every ms marker along the x axis in the timeline view – only for the last one.
- Profiler: Fix unaligned labels for ms counts in current frame.
- Scripting: Added Vector2.Reflect function.
- Serialization: Extended SerializedFile size limit to 4GB
- Shaders: Support VFACE in surface shader inputs; just use a float variable with VFACE semantic.
- SpeedTree: A new importer setting “Animate Cross-fading” is added to SpeedTree assets
- SpeedTree: Now wind animation will not be interrupted if the tree gets out side of the view.
- SpeedTree: Tree casts shadow when in cross-fading to billboard
- Texture2D: Add Texture2D.GetRawTextureData() API
- UI: Allow dragging anchors outside of bounds of parent when holding down Ctrl (Cmd on Mac) – the same key that disables snapping
- UI: Changed default blink rate and widget range of InputField caret to match the new frequency behavior.
- Version Control: CheckoutIsValid now accept a CheckoutMode
- Version Control: Collapse assets and their .meta files in versioning window when they have the same state
- WebGL: Made “Explicitly Thrown Exceptions Only” mode much faster and be the default setting
- WebGL: Support Input.touches and Input.acceleration
- Windows Store Apps: Copy pasting will also work outside the application.
- Windows Store Apps: Exposed Rendering path in Player Settings
- Windows Store Apps: Refactored App.xaml.cs and MainPage.xaml.cs, it’s easier now to add additional XAML pages to the project
- XboxOne: Added functions to XboxOnePLM (GetActivationUri, GetActivationTileId, GetActivationArguments) to retrieve cached values
- XboxOne: Added support for XMA audio format
- XboxOne: IPv6 lookup and DNS support added for C# code.
- XboxOne: Lightmap files are now split up per level and put in separate chunks in the package manifest.
- XboxOne: More comments have been added to the default package manifest.
- XboxOne: Worker threads created by Unity’s core systems (Physics, AI) will no longer run on cores 0 and 1, which are reserved for the Rendering thread and Unity’s main thread respectively
Full details about the changes in Unity 5.1 can be found in the Release Notes.
Of particular note is the refactoring of SpeedTree Level of Details, which can improve results dramatically.
— SpeedTree (@SpeedTreeInc) June 11, 2015
Several patches and updates for Unity 5 have been released. 5.1.0p1 was released on June 12.
Unity 5.1.1 was released on June 19, and contained a few new features.
- VR: Gear VR is now supported with Unity VR.
- Editor: Added MonoDevelop Solution Properties toggle to External Tools to disable writing of MonoDevelopProperties section to .sln files.
- Graphics: Added hexadecimal code support to Color (TryParseHexString, ToHexStringRGB and ToHexStringRGBA).
- Graphics: Added set to gpu skinning parameter in PlayerSettings.
- Input: Mouse cursor will be confined to rendered area in Windows standalone (when CursorLockMode.Confined is used).
- iOS/IL2CPP: Lower memory used by IL2CPP executables at runtime by removing unused overhead from memory profiling and making more data constant.
- Linux: Removed “faulty GPU driver” workarounds for Intel drivers that claim to support OpenGL 3.0+.
- Mecanim: Show frame number in avatar previewer.
- Mecanim: AnimatorState runtime speed is now a multiplier apply on the orignal speed rather than an override.
5.1.1p1 was released on June 23, 5.1.1p2 on June 26, 5.1.3 on July3, and 5.1.1p4 on July 8.
Unity 5.1.2 was released on July 16, and contained minor improvements.
- Analytics: Added cloudProjectId to hwstat.
- Android: Audio – Enabled OpenSL for GearVR.
- Animation: Group material color channel curves. Removing one curve will automatically remove other channel curves of the same color property.
- Documentation: Docs for Audio / VR / UNet updated.
- Editor: Informative message will be shown in the material inspector when the material property block values are used.
- Graphics: Added options for opaque object sorting control, see Camera.opaqueSortMode.
- iOS/IL2CPP: Load embedded resources in memory-mapped files so that the memory used by those embedded resources is marked as constant.
- Terrain: Expose TerrainData.SetHeightsDelayedLOD and Terrain.ApplyDelayedHeightmapModification to allow users to achieve high frame rates while doing interactive terrain editing.
- Windows Editor Installer: Use dism.exe to install .net framework5, for a more silent experience when using /S silent installer option.
- Xbox One: Unity now builds with the June 2015 XDK. You must have the June XDK installed on your PC and use the matching or later recovery on your console.
- 2D: SpriteRenderer will have light and reflection probes turned off by default. They can still be turned on manually.
Patch 5.1.2p1 was released on July 22, 5.1.2p2 on July 30, and 5.1.2p3 on August 6.
Unity 5.1.3, released August 24, adds a few improvements.
- Tizen: Static splash screens are now supported.
- Android: Added support for real 16bit RGB565 backbuffer.
- iOS: Make WWW.text to actually contain error response in case of non-200 status.
- Physics: Renamed ‘CollisionDetectionMode2D.None’ to ‘CollisionDetectionMode2D.Discrete’ (Will be auto-updated).
- VR: Added an option to allow Cameras to render specifically to left/right eye for stereo 3D.
- WebGL: Added WebGLInput.captureAllKeyboardInput API to allow web page content to get keyboard input.
- BlackBerry: SystemInfo.deviceModel now returns a useful model string value instead of a hexadecimal number.
- Samsung TV: Users are now able to set the system language via SamsungTV.SetSystemLanguage. Users will need to fetch the system language via Samsung’s GSP API plugin.
- Windows Standalone: Player exe is no longer signed, icon and version modifications will no longer have digital signature errors.
- Xbox One: Unity is now built using the June 2015 QFE 1 XDK. You will need to have this XDK installed on your PC and use the matching or a later recovery.
Patch 5.1.3p1 was released August 27, 5.1.3p2 on September 4, and 5.1.3p3 on September 11.
Unite Asia, which included events in several countries, ran during the early summer. The final set of announcements were broadcast from Bangkok.
Untie Europe kicked off in June, and was held once again in Amsterdam. The keynote, as well as several other videos, was made available on the Unity channel on YouTube.
Unite Boston will be starting at the end of September, and there are a number of things happening for it. If you have any interest in writing shaders, workign with multiplayer, or developing in Unity at all, and happen to be in Boston, you should check it out!
Following their release of their Viking Village assets, which were used to show of Physically Based Shaders, Unity has released the assets, tools and shaders used to create The Blacksmith machinima. Both sets contain a huge number of high-quality assets that can be used in your own projects!
There have been a few other bits of news on the Unity front this summer as well.
- Back in April, Unity announced it would support Microsoft’s new HoloLens. HoloLens is Microsoft’s self-contained holographic computer headset, enabled by Windows 10, which is able to render high-definition, fully interactive digital objects and spaces that blend with real-life environments. Unity for HoloLens tools will be included with Unity Pro and Unity Personal Edition with no additional cost, but exactly when support for Unity builds will be available has not yet been announced.
- In June at Unite Europe, Unity revealed their development roadmap. This 9-month sheet gives us a good idea of what is to come, including Unity 5.3 on December 8 of this year, 5.4 on March 16 on next year, and a glance at what they are looking at for the future.
- Unity 2D Alpha Release 3 is available.
- A revised Unity Answers was revealed at the end of June, adding additional functionality to the site.
- Unity has gone indepth on IL2CPP Internals, looking at its Generated Code (and Debugging Tips), Method Calls, Sharing Implementation, P/Invoke Wrappers, Garbage Collection, and Testing. This provides a great background on this feature, which is what allows cross-compilation for multiple targets using the same code.
- The Unity editor is now available for Linux!
- The Survival Shooter tutorial has been updated for Unity 5.1. This tutorial is designed to teach new developers how to create a isometric 3D game.
- Unity looked at how to implement Android themes in an Android build, which makes UI appear seamless to the end user. Similar themes could be of use in other system builds as well.
- Visual Studio Tools for Unity 2.0 was released at the end of July. The Visual Studio blog has information about the features for each supported version.
- Unity will be dropping support for precompiled shaders, DX9 SM2.0 GPUs, and DX11 FL9.3 GPUs
- Unity 5.2 includes support for Windows 10, and the array of Universal Windows Platform (UWP), allowing targeting of multiple devices ranging from phones to tablets to PCs to Xbox.
- Unity is coming to AppleTV, with official support for the new tvOS.