Unity 2018.3

Additional downloads

Select the runtime platforms of your choice from the list below (the desktop runtime is included as standard) or, to install the full complement of runtime platforms, use the download assistant installer above.

Features

Android: Added support for requesting permissions at runtime for apps using API level 23 and above.

Android: Added support for using Kotlin source files as plugins.

Android: Added the automatic installation and configuration of OpenJDK when installing Unity Android support. Configuration to use manually installed JDKs is no longer officially supported.

Animation: Added SkinnedMeshRenderer.forceMatrixRecalculationPerRender. Set this property to manually render a skinned mesh multiple times within a single update. For example, for rendering out the results of an animation to a texture.

Asset Import: Added support for importing R16 textures.

Editor: Added ability to view each channel in the Texture Inspector.

Editor: Added improvements to the window tabs:

The selected window tab is now highlighted using a blue outline.

The width of the tab is now adjusted according to the length of the tab title.

You can now scroll through open tabs with arrows when the number of open tabs exceeds the width of the window.

Editor: Introduced new searchable window to display and edit Project Settings and Preferences.

GI: Added disc-shaped area Light type for baked lighting. Only available in the Progressive Lightmapper.

GI: Added preview version of GPU Lightmapper in Windows Editor. Select this in the Lighting window. The lightmapper is based on OpenCL and RadeonRays and works on all modern GPUs with more than 2Gb of dedicated memory.

Graphics: Added memory-less frame buffer depth to iOS Metal.

Graphics: Added shadow bias options to Particles, Lines, and Trails.

Graphics: Added support for render targets and the R16 texture format.

Graphics: Added texture 3D CopyTexture support.

Graphics: Added VFX editor run-time API.

IL2CPP: Added support for managed code debugging with IL2CPP on Xbox One.

Mobile: Added Dynamic Resolution Scaling support for Vulkan on Android and Metal on iOS.

Multiplayer: Added support for providing a custom network transport implementation to be used by Unity Multiplayer's high-level API. See documentation on UnityEngine.Networking.NetworkManager.activeTransport for details.

Package Manager: Added support for packages in the Project browser.

Particles: Added option to disable roll on billboard particles, which is particularly useful for VR applications.

Physics: Added the ability to have a per-Scene physics world, which allows for separate simulation and queries.

Physics: Added support for Box, Capsule, and Sphere casts in aysnc query command.

Playables: Exposed the time wrap mode for Playables.

Playables: Implemented a method for sending notifications through the playable system.

Player: Added AssetBundle.RecompressAssetBundleAsync API to re-compress downloaded AssetBundles from one compression methodology to another runtime supported compression methodology. Moved BuildCompression, CompressionLevel and CompressionType out of the UnityEditor.Experimental.Build.AssetBundle namespace and into UnityEngine.

Profiler: Added UnityEditor.Experimental.Networking.PlayerConnection.EditorGUILayout.AttachToPlayerDropdown to public API to offer a one-stop solution to display and change the player the Editor is attached to.

Audio: Simplified the Audio Profiler so that it is consistent with other profiler panes. The detailed view enables audio profiling so that Unity only carries this out when you need it.

Editor: Added 'Find references in Scene' to Component context menus.

Editor: Changed File menu item names. 'Save Scenes' is now 'Save' and 'Save Scene As' is now 'Save As', because they now save either a Prefab or Scenes depending on whether Prefab Mode is active. Unity still saves any dirty Assets when you use Ctrl/Cmd + S.

Editor: Changed Particle System module headers to only track the enabled state property instead of all properties. Also added Property menu choices to the context menu that appears when you right-click on the headers.

Editor: Updated event queueing in UIElements. When an event occurs that generates subsequent events, Unity now processes those subsequent events only when it has finished processing the current event.

Editor: Updated the UXML factory-related API. The old API is now marked obsolete.

Editor: When Unity builds assemblies in the Editor for the .NET 4.x scripting runtime, they now have .NET 4.6 (NET_4_6 define) set, regardless of when the .NET Standard 2.0 scripting profile is set (NET_STANDARD_2_0 define). This is because the scripting profile setting only affects players, and the Editor always uses the .NET 4.6 scripting profile.

Particles: It is now possible to flip a percentage of mesh particles, in the same way that was previously only possible with billboards.

Particles: The Unlit Particle Standard Shader is now applied by default when creating new Particle Systems.

Windows: The Vulkan editor support on Windows and Linux is no longer experimental. Removed the "Enable Vulkan editor support" checkbox.

Improvements

2D: Added an option in Sprite Editor to display a Sprite's pivot position in pixels, and to allow the pivot to snap pixels as it is dragged.

2D: Added Isometric Tilemap support for 2D Tilemap.

2D: Added support for custom axis sorting and Sorting Groups in SRP.

2D: Added the Z Position Editor to the Tile Palette Brush Inspector to allow users to adjust the Z Position of Tiles painted by the Tile Palette Paint Brush. Keyboard shortcuts '-' and '=' can be used to adjust the Z Position value as well.

AI: It is now faster to unload a Scene that contains a large number of autogenerated OffMeshLinks.

Android: Added support to pass the -d switch to adb install to allow version downgrade.

Android: Added WebCamTexture acceleration for Android 5.0 and later.

Android: Added Start in fullscreen mode checkbox option to player settings, resolution and presentation section. If disabled, app starts in non-immersive mode and the navigation bar is shown. (977660)

Android: APKs are now packed by default using apkzlib. Added Use legacy SDK tools checkbox in player settings to force the use of AAPT and apkbuilder.

Android: Fixed an issue that prevented certain public classes in the Android extensions DLL from appearing in the Unity API reference docs.

Android: Improved the performance of memory stats gathering when the profiler is enabled.

Android: Reduced the build time when building multiple APKs for different CPU architectures. This only affects the internal build system.

Android: Reduced the time it takes to load the Player on Android devices.

Android: Set JAVA_HOME to point to the JDK path set in Unity Editor. (961766)

Android: Updated the version of the Android NDK used by Unity on Android to r16b.

Android: Updated to automatically populate the minimum and target Android API level dropboxes in the Editor.

Asset Import: Fixed inconsistency between the UI and the API when using some Model Importer properties.

Asset Import: Improved the SpeedTree Importer to include importing Materials as sub-Assets, and allowing workflows using Material sub-Assets, similar to the ModelImporter.

Asset Import: Improved the UI for the AvatarMask by adding search functionality, allowing multiple selection, keyboard navigation, and enabling using modifier keys to collapse, enable, or disable the entire hierarchy.

Compute: ComputeBuffer.GetData and ComputeBuffer.SetData now throw exceptions when they get bad values for arguments. Unity checks offset and size more strictly (for one argument version, Unity assumes the offset is 0 and the size is the same as that of the container), and compatibility between C# type size and ComputeBuffer stride.

Docs: Expanded the documentation of the SerializedObject class.

Editor: Added a warning when Unity does not load assembly definition file (asmdef) assemblies on startup in cases where the assemblies do not have scripts to compile their asmdef references. Also added a warning when Unity attempts to compile asmdefs that do not have scripts in the Editor. (1041284)

Editor: Added support for finding .asmdef Assets with t:asmdef when using AssetDatabase.FindAssets and the Unity Editor project browser search field.

Editor: Deleting a script now triggers recompilation only where necessary, rather than automatically recompiling all scripts.

Editor: Edited Component Presets can now use Reset and Paste Component Values methods in the Preset Inspector.

Added checkEnabled callback to allow disabling/enabling an option in the pop-up.

Editor: In USS files, flex-basis now accepts the value auto.

Editor: Made the Clip Masks faster to refresh in the ModelImporter Animation panel by using the new SerializedProperty.DataEquals method.

Editor: Renamed several UIElements UXML attributes and USS properties for consistency and alignment with CSS. For details, see this spreadsheet: https://docs.google.com/spreadsheets/d/1vS7LASgy1_Cdnr49isXGIVf6FWkNAOc56zGODfJbzPM/edit?usp=sharing

GI: Added a debug view to display visible texels from the baked GI point of view. This is particularly useful along view prioritization.

GI: Added support for configurable falloff for Enlighten lightmap baking.

GI: Added two GI profiling counters: one for pending albedo/emission renders, and one for pending Material updates.

GI: Lights from Particle Systems can now affect realtime GI if they have non-zero bounce intensity and Realtime GI is enabled. (832496)

GI: Moved Enlighten data loading to the loading thread and added DynamicGI.materialUpdateTimeSlice to control albedo/emissive rendering per frame budget:

In versions of Unity prior to 2017.2, when a Scene loads, Unity reads the Enlighten data on the main thread and renders albedo/emissive rendering in one go, causing a big spike.

In 2017.2, Unity loads Enlighten data in a time-sliced manner, but still on the main thread. The main thread schedules albedo/emissive rendering with an 8ms budget per frame.

From 2018.3 onwards, Unity loads Enlighten data on the loading thread. The main thread schedules albedo/emissive rendering, and you can control the budget with the DynamicGI.materialUpdateTimeSlice API.

Note: Unity only reads Enlighten data on the loading thread when running in the Player. (975975)

GI: Reduced baking artifacts in areas that use interpolated normals.

GI: The Lighting window now displays the Light Probes convergence status during baking.

GI: The Lightmap window Memory view can now show allocations greater than 4Gb.

GI: To improve performance, Unity now only extracts Materials when the Progressive Lightmap baking back-end is running.

GI: Add buttons to enable Lightprobe deringing.

GI: Unity now caches Progressive Lightmapper G-Buffers in the GI cache. Lightmap baking starts quicker if the G-Buffer is already in the cache.

Graphics: Texture2DArray GameObjects now have an improved Editor, including the ability to preview the Textures in the Array.

IL2CPP: Added "Master" configuration to the IL2CPP compiler configuration drop-down. This configuration is optimized for speed, with complete disregard for build time. It enables compiler options that slow down compilation (for example, link time code generation on Windows-based platforms). Generated Visual Studio projects for IL2CPP scripting backend on Windows Standalone and Universal Windows Platform now also contain an optional "MasterWithLTCG" configuration, which you can use to enable these settings. (1089249)

iOS: Added profiler blocks in native code for input events in the new input system, which enables you to see number of incoming input events.

Speculative CCD; now fast rotations can be dealt with (think Pinball flippers)

Simulation determinism now doesn't get affected by newly added Rigidbodies that don't belong to current islands

Mesh cooking is now at least 2x faster than before

Playables: Improved PlayableGraph housekeeping which improves performance for large numbers of PlayableGraphs, Timelines, or Animators.

Prefabs: When a Prefab Asset goes missing, Unity now displays the last known overridden root Prefab instance name. It now displays "MyGameObjectName (Missing Prefab)" instead of "Missing Prefab".

Profiler: Added an Options drop-down menu to the Hierarchy toolbar in the CPU Usage view on the Profiler window. This change collapses samples that only occur when running the game in the Editor. Collapsed samples do not add the size of their managed allocations (GC Alloc column) to the enclosing sample. The option to collapse samples is on by default, and the samples will show up as EditorOnly [SomeMethodName].

Profiler: Added functionality so that Recorder objects can be configured to collect samples from a single thread.

Profiler: Added GC finalizer thread to Profiler, for the new Mono backend.

Scripting: Hides obsolete properties from IntelliSense using the [EditorBrowsable] attribute:
-Visual Studio (without R#): works out of the box (Win, Mac).
-Visual Studio (with R#): the user needs to configure Filter members by [EditorBrowsable] attribute in R#. (https://www.jetbrains.com/help/resharper/Reference__Options__Environment__IntelliSense__Completion_Appearance.html).
-Visual Studio Code: works out of the box (Win, Mac).
-Rider: does not support filtering by [EditorBrowsable] attribute.

Scripting: Optimized 'DisallowMultipleComponent' check to be faster and not allocate garbage collection memory.

Scripting: Removed main thread limitation from the LineUtility.Simplify method.

Scripting: Allocator.Temp memory in NativeContainer types is now automatically disposed of when returning from managed code back to native. Also enforced the restriction of passing Allocator.Temp memory to jobs, which enables the use of Allocator.TempNativeContainer types in Burst compiled jobs.

Scripting Upgrade: Added log changes made to user assemblies by the AssemblyUpdater in the file Editor.log. For more information, see the Logging section in APIUpdater.

Terrain: Made changes to allow users to specify a shader, so that shading of the basemap pass better matches the splatting passes. To do this, add the BaseMapGenShader dependency for generating the Terrain basemaps.

Testing: Introduced an NUnit constraint for testing whether code allocates any GC memory, along with supporting classes to integrate with NUnit's fluent Assert.That syntax. This allows you to write very concise tests to assert that your code doesn't allocate any GC memory.

Timeline: Added an API to rebind the PlayableOutputs to the scene.

Timeline: Added different colors and icons in the Timeline window when editing a PlayableDirector in prefab isolation mode.

Timeline: Improved performance and reduced allocations when playing a Timeline.

Timeline: Improved root animation in the Timeline window.

Timeline: The scene offset mode on an Animation track now uses the existing scene position and rotation when previewing in the Editor.

Timeline: The Timeline window now evaluates objects based on their scene position when an Animation track has no clips or extrapolation.

UI: Added Sprite Atlas Late-Binding support for UI.

UI: Added the ability to to use Sprite Tight Mesh inside Unity UI.

UI: Updated the way Unity generates bold characters when it cannot find an bold font. Unity now thickens the glyph strokes rather than horizontally distorting the glyph. (966667, 983200)

UI: Updated UI.InputField to use a cached version of WaitForSecondsRealtime to reduce GC.

Universal Windows Platform: Added support for building player with Visual Studio 2019.

Web: UnityWebRequest now supports cookies in the same game session. Added API to remove them.

XR: Android apps that use ARCore can now use multi-threaded rendering.

XR: Linear color space now works on Oculus Go and Quest. For Gear VR, driver issues might prevent linear color space from working with S7 Adreno phones on Android 7.0.

XR: Using presence detection on Windows Mixed Reality is now more responsive and reliable.

XR: XR LWRP Improvements:

Implemented single-pass double wide rendering as a stereo rendering method fallback for Android devices that do not support single-pass instancing or multi-view.

You can no longer select stereo multi-pass rendering from the Player Settings when an SRP is in use.

Unity automatically selects single-pass stereo rendering if multi-pass was previously selected before using an SRP.

Resolved Android y-flip issues.

Shadows now render correctly on all Android platforms when using multi-view stereo rendering.

Unity no longer renders the VR watermark on a head-mounted display.

OpenGL invalid state errors are no longer present in adb logs.

API Changes

2D: Added Experimental.U2D.ISpriteEditor.SetPreviewTexture to set preview textures for SpriteEditorWindow. Importers that support ITextureDataProvider can also implement Experimental.U2D.ITextureDataProvider._previewTexture to set preview textures.

AI: Added new experimental NavMeshQuery.Raycast() method, which you can in jobs. It returns the list of visited NavMesh nodes.

AI: Added UnityEditor.AI.NavMeshBuilder.CollectSourcesInStage(), which can handle the main and prefab stages separately.

Android: Added Android API 28 (Pie) to the Unity scripting reference.

Android: Removed the public API for setting the JVM Max heap size.

Animation: Added an additional parameter to GameObjectRecorder.SaveToClip() for specifying the FPS of the clip generated by the GameObjectRecorder.

Animation: Added Animator.WriteDefaultValues that lets you force a write of the default values stored in the animator.

Animation: Added PPtr support for Animator.BindStreamProperty and Animator.BindSceneProperty.

Animation: Moved GameObjectRecorder out of experimental.

Animation: Refined the experimental Anim C# Jobs API. Renamed and changed some fields in AnimationStream and AnimationHumanStream. For example, IsValid() is now isValid, GetBodyLocalPosition() is now bodyLocalPosition, and DoF is now Dof.

Asset Import: Added the AssetPostprocessor.OnPostprocessMeshHierarchy callback, which allows you to modify the imported hierarchy before importing the Avatar and animation clips. (1069175)

Asset Import: Added AssetImportContext.DependsOnSourceAsset to make it possible to report source dependencies during imports, in ScriptedImporters.

Asset Pipeline: Deprecated the overload of AssetDatabase.TryGetGUIDAndLocalFileIdentifier with the parameter int localID, because it can return a localID that has overflowed (this can happen when called on GameObjects that are part of a Prefab). Instead, use the overload that uses a long data type for the localID parameter.

Compute: Extended ComputeShader.SetTexture() and CommandBuffer.SetComputeTextureParam() APIs with the mipLevel parameter, which allows binding a MIP level of a read-write (unordered access) Texture to a compute shader.
The mipLevel parameter is ignored unless the shader specifies a read-write (unordered access) texture.

Editor: Added a SelectRange API to the UIElements text field.

Editor: Added new fields to the ModelImporter Scripting API:

ModelImporter.importBlendShapeNormals, which is similar to ModelImporter.importNormals but for blend shapes.

ModelImporter.normalSmoothingSource, which controls whether to use smoothing groups or face angles to determine which edges are smooth when computing normals.

Editor: Added new UIElements fields: BoundsIntField, RectIntField, Vector2IntField, Vector3IntField, Toggle.
For the Toggle, the OnToggle() callback is now deprecated. User should use OnValueChanged().

Editor: Added EditorUtility.CopySerializedManagedFieldsOnly, which allows you to copy fields between any two managed objects using the Unity serializer.

Editor: Added Preset.ApplyTo(Object, string[]) that applies the specified properties and their children to the target Object. If the array is empty it applies all properties.

Editor: Added Presets.DataEquals(UnityEngine.Object) that lets you compare the content of a Preset with the Serialization of any matching Object type, and determine whether applying the Preset would change the target object.

Editor: Added SerializedProperty.DataEquals method that compares the raw data of two SerializedProperty.

Editor: Deprecated PlayerSettings.vulkanUseSWCommandBuffers. Unity now only uses SW CommandBuffers if GraphicsJobs are enabled and native Vulkan secondary command buffers are slow or have issues on some drivers. Otherwise, Unity now ignores this property.

Editor: Improved EditorGUI.EnumPopup and EditorGUI.EnumFlagsField:

Enum options now display in the order of declaration instead of the order of value.

Added support for [DescriptionAttribute] to change the display name of an enum value.

When you use EditorGUI.EnumPopup with includeObsolete = true Unity appends (Obsolete) to the name on Obsolete enum values.

Added support for [TooltipAttribute] to add a tooltip on enum values when using EditorGUI.EnumPopup.

Editor: Marked the old Prefabs API as obsolete, because it is not compatible with the new Prefabs feature set. It still works for now, but Unity displays warnings if you use it.

Editor: Text fields in the Editor now use KeyDown events that receive a KeyCode and KeyUp event when the user is entering text. If you have controls that draw after a text field that need to be aware of these events, you should test for them before drawing the text field.

GI: Added LightProbeGroup.dering to enable/disable remove ringing from Light Probes in the group.

GI: Added Terrain.deringLightProbesForTrees to enable/disable remove ringing from Light Probes attached to trees on a Terrain.

Player: Added AssetBundle.RecompressAssetBundleAsync API to re-compress downloaded AssetBundles from one compression methodology to another run-time supported compression methodology. Moved BuildCompression, CompressionLevel and CompressionType out of the UnityEditor.Experimental.Build.AssetBundle namespace and into UnityEngine.

Prefabs: Added method PrefabUtility.HasPrefabInstanceAnyOverrides to quickly check if there's any override on a Prefab instance.

Profiler: Exposed the Editor GUI Unity uses to connect to a player from the Profiler or Console windows. It's placed under UnityEditor.Experimental.Networking.PlayerConnection, where EditorGUIUtility.GetAttachToPlayerState(EditorWindow parentWindow) gets the connection state with which Unity can draw from using EditorGUILayout/EditorGUI.AttachToPlayerDropdown.

Scripting: Added an optional exitCode parameter to Application.Quit.

Scripting: Added the following diagnostic methods in UnityEngine.Diagnostics.Utils: ForceCrash, NativeAssert, NativerError, and NativeWarning.

Asset Import: Apply/Revert can be used when a change is made in the selected ScriptedImporter settings. (1087775, 1099000)

Asset Import: Copying settings from an FBX to another FBX file using Presets does not break asset references anymore. (1031246)

Asset Import: Deactivating and reactivating standalone support on a PluginImporter now keeps the correct values in the Per-Platform Desktop settings. This fixes an issue whereby plugins were not copied to the Standalone Plugin folder when they were marked to be included in build. (983225)

Asset Import: Fixed an issue with the ScriptedImporter default inspector where you couldn't change the script inside the imported Project. (1040745)

Asset Import: Fixed an issue with the ScriptedImporter where it failed to re-import an Asset after renaming the ScriptableObjectClass. (1025425)

Asset Import: Fixed an issue with the ScriptedImporter where it failed to re-import an Asset after renaming the ScriptableObjectClass. (1056618)

Asset Import: Fixed an issue with the ScriptedImporter where it failed to re-import an Asset after renaming the ScriptableObjectClass. (1065609)

Asset Import: Fixed inability to choose anything other than "Auto" for the default Texture format in the TextureImporter. (955096)

Asset Import: Fixed issue with MonoBehaviours and ScriptableObjects not being recognized in .NET 4.x .dlls after changing the scripting runtime version from .NET 3.x to .NET 4.x. (1012922)

Asset Import: Fixed TextureImporter platform getter/setter to find the correct platform when using BuildTargetGroup enum names, as happens on other Importers. (678452)

Asset Import: Fixed the case of blendshapes animation tracks not being bound to blend shapes when BlendShapeChannel and targetShapes have no name in FBX. (1025917)

Asset Import: Fixed the case where the importer crashed during Material Asset preview while importing a package Asset. (987972)

Asset Import: Fixed the case where the ModelImporter would crash Unity when setting a null Avatar mask. (1066253)

Asset Import: Fixed the case where the scripted importers selection of the main Asset was not always applied correctly. (969107)

Audio: Fixed crash when unloading audio data in the same frame as an AudioSource started playing it. (1008302)

Audio: Fixed issue where imported audio clip size would include both Editor and Player compressed data on platforms where there are two representations. (961754)

Audio: Previously, AudioSource.minDistance could be set to be greater than the AudioSource.maxDistance via script, contrary to what is possible in the AudioSourceInspector. It is now clamped between 0 and maxDistance. (978664)

Editor: Added a check at project initialization to verify that at least 256 MB is available, and emits a warning message in the Editor console if not. (840183)

Editor: Added check for assembly references before loading them in the editor. Fixes various issues with crash/errors when trying to load assemblies for which their references no longer exist or are incompatible with the editor. (996976, 1045480)

Editor: Asset names are no longer part of Preset serialization. (1044464)

Editor: AssetImporter presets now correctly ignore all properties that are excluded from meta files.

Editor: Backed out a change that made Unity Mac Editor render timer tick while menus and other modal popups were open (1027527, 1028213)

Editor: Fixed "Unity extensions are not yet initialized" errors on startup when UWP is selected as as build target and Visual Studio is selected as external script editor. (1067917)

Editor: Fixed a bug in UIElements'ListView hiding some items when scrolling or showing partially hidden items

Editor: Fixed a bug when Multi Scene Editing is used and baked lightmaps are generated: 'ArgumentException: Invalid SceneManagerSetup' error is shown after generating lighting or reloading the scene. (1000397)

Editor: Fixed a crash when creating a Preset from PlayerSettings with VR devices specified. (1061747)

Editor: Fixed exception being thrown when a callback was registered with Editor.finishedDefaultHeaderGUI and an Editor's header was drawn via Editor.DrawHeader() when there was GUI state on the internal stack (e.g., change checks, disabled groups), as in the ModelImporter's Animation tab (1070848)

Editor: Fixed FadeGroup not being present as a GUI element when fade property was 0 (minimized) or 1 (fully expanded). Now FadeGroup is always present and EndFadeGroup should always be called. (773350)

Editor: The first phase of event propagation, formerly named Capture, has been renamed TrickleDown. API has been updated accordingly. MouseCaptureController function names have been simplified. This includes a few extension methods on IEventHandler.

Editor: The PresetManager dropdown on each default preset line is now updated correctly when Presets are deleted/added in a project. (1070684)

iOS: Removed option to build for Apple TV or iOS Simulator when Metal is the only selected graphics API (as Simulator does not support Metal). (1064041)

iOS: We now recalculate iOS keyboard input field constraints before showing the keyboard; previously they were calculated after the keyboard had already been displayed. (1040620)

iOS: When launching iOS tests with Unity Test Runner, Xcode will now always be used to build and run the app. Additionally, to improve reliability the iOS app will now connect to the Editor rather than Editor connecting to the app. (1041492)

Kernel: Added functionality to detect if your application runs out of instance IDs. The system now logs an error message and forces the application to quit. This is a very unlikely scenario. (967306)

Kernel: Fixed an issue where the Editor crashes when you open a Unity Project that contains components with missing GameObjects. Unity now contains them as recovery GameObjects. (907367)

Kernel: SerializedProperty.arraySize now returns the smallest value when you select multiple objects. (1035438)

Kernel: UnsafeUtility.Malloc() now throws ArgumentException when you enable collection checks and are using an unsupported allocator. This fixes the crash when creating a NativeArray from a managed thread using an unsupported allocator. (1088897)

Scripting: Fixed a problem where Unity would crash while shutting down in Standalone Players when using the scriptable PlayerLoop. (1030187)

Scripting: Fixed a problem where Unity would fail to report an incorrect method signature error for DidReloadScript. (1021423)

Scripting: Fixed a problem with the WaitForSecondsRealtime method, so it is now reusable and lets users avoid GC issues. Exposed the waitTime property of WaitForSecondsRealtime allowing for the modification of yield time after creation. (1058067)

Scripting: Fixed a problem with Scripting Runtime Version not updating when modifying the ProjectSettings.asset file from an external tool such as version control, overwriting the file, etc. (1010811)

Scripting: Fixed a problem with PersistentManager::ReadObject that would crash when exiting Unity installations using the VSCode plugin. (946976)

Scripting: Fixed an issue where Unity would not report static members to the MemorySnapshot API, such as generic classes with an array type argument. (984330, 1101141)

Scripting: Fixed issue where Unity would be unable to find the assembly reference for UnityEditor.iOS.Xcode while in batch mode for iOS. (1018716, 1087294)

Scripting: Fixed issue where Unity would lose references to missing assets in arrays and lists. (1085374)

Scripting: Fixed issue where Unity would use incorrect scripting backend and profile #define directives when building scripts in the Editor. (1075345)

Scripting: Fixed problem where Unity would crash when calling DestroyImmediate(gameObject) in OnApplicationQuit. Fixed problem where ZenInject would occasionally crash Unity when exiting Play Mode. (1005227)

Scripting: Fixed TLS handshake failure error messages so that they are now more specific. (1070949)

Scripting: Formatted the templates used to generate scripts to the standard Unity convention. (986688)

Scripting Upgrade: Added support for the System.Data.DataSetExtensions assembly with the .NET 4.x EquivalentScripting Runtime Version. (1071607)

Scripting Upgrade: Fixed a problem that would cause the debugger to crash when trying to invoke a generic method. (1049288)

Scripting Upgrade: Fixed a problem that would sometimes crash Unity when entering Play Mode on macOS with Mono 4.x. (1060892)

Scripting Upgrade: Fixed a problem with List.AddRange so it avoids unnecessary allocations. (1041305)

Scripting Upgrade: Fixed an issue that caused Unity to crash when the debugger attempted to view a local string variable with invalid characters. (1052246)

Scripting Upgrade: Fixed an issue with DriveInfo.IsReady so it returns false when there is no disc in the CD drive. (1028143)

Scripting Upgrade: Fixed issue where Unity would crash when a script called GetMethod("Invoke") on types Delegate or MulticastDelegate. (1085270)

XR: Fixed serialization faliure in HoloLens photocapture when using .Net that would cause the app to crash. (1024727)

XR: Fixed the issue with incorrectly ignoring the viewport whilst rendering to a RenderTexture when VR is enabled (986355)

XR: Previously when using SteamVR with OpenGL, if the SteamVR dashboard was open prior to playing in the Editor, the Unity scene would appear skewed or distorted in the HMD once the dashboard was closed. This has been fixed. (1000325)

XR: Splash image does not appear in headset (878834)

XR: The world will no longer appear flipped on HoloLens. (1041817)

XR: UnityEngine.XR.InputTracking.GetNodeNames no longer returns null when a valid uniqueId is provided. (1042946)

Oops...

"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.

Got it

We use cookies to ensure that we give you the best experience on our website. Click here for more information.