Release notes

Version 1.5.0 - April, 2024.

This page provides details about enhancements, deprecations, resolved issues, and known issues in the 1.5 release of ArcGIS Maps SDK for Unity.

Enhancements

This section describes new features and improvements (what's new).

OpenStreetMap 3D Buildings layer support

The OpenStreetMap (OSM) 3D Buildings scene layer hosted by Esri is now supported.

When using the Map Creator UI, you can add the OSM 3D Buildings layer to the layers collection of your map under the Layers tab, by specifying the layer type ArcGIS 3D Object Scene Layer and the portal item URL:

Use dark colors for code blocksCopy
1
https://www.arcgis.com/home/item.html?id=ca0470dbbddb4db28bad74ed39949e25

Alternatively, when using the API, you can also add the layer directly to the Layers collection of your ArcGISMap.

The OSM 3D Buildings layer will work in global scenes when using the geographic coordinate system WGS84 or the projected coordinate system Web Mercator (Auxiliary Sphere), and in local scenes when using the geographic coordinate system WGS84. It is curated and managed by Esri, and features data from the OSM Daylight Map Distribution, which is supported by Meta (formerly Facebook) and others. This service is available for you to use in your scenes and apps, following the ArcGIS Online Terms of Use and with proper license and attribution.

OSM
Example of OSM 3D Buildings of New York City

Group layer support

With this release, support for group layers has been added. A group layer is a collection of layers organized as a group in the map. Layers within a group layer are called sublayers and can be of the same type or different types. For example, an integrated mesh scene layer and a 3D object scene layer can be organized together in a group layer.

Group layers are designed for presentation of operational layers that are related by a theme. Group layers are an important concept when building a table of contents user experience, often implemented using a tree view control to represent the hierarchical structure.

Group layers enable you to manage all the sublayers as a single layer, where you as the developer can build an experience that allows your users to interact with the sublayers as a group, controlling properties such as visibility and opacity. Property values you set on the group will apply to all the sublayers. For example, setting the visibility of the group layer to false will turn off all the sublayers, even if their own visibility property value is true.

The group visibility mode enumeration determines how the visibility of each sublayer is managed within a group layer with three options:

  1. Independent visibility: each sublayer manages its own visibility independently. This means that you can control the visibility of each sublayer individually without affecting the visibility of other sublayers in the group.
  2. Inherited visibility: each sublayer inherits the visibility of its parent group layer. When the group layer is set to true, the visibility of all sublayers within the group is enabled. If the group layer is set to false, the visibility of all sublayers within the group is disabled.
  3. Exclusive visibility: only one sublayer can be visible at a time within the group. Enabling the visibility of one sublayer will immediately disable the visibility of any other sublayer in that group. This allows you to switch between different sublayers within the group while ensuring that only one is visible at a time.

The opacity of the child layers is the mathematical product of the opacity of each individual child layer and the opacity of the group layer. Opacity values range from 0.0 (transparent) to 1.0 (opaque). This means that setting the opacity of the group layer to 0.0 will make all child layers transparent. Likewise when the group layer opacity is 1.0, will set the opacity of the child layers to their individual layer opacity.

The geographic extent, or full extent of a group layer is the aggregate geographic extent of its sublayers. It is derived asynchronously based on what information is available from the child layers, which means the full extent can change when child layers are added or removed. The full extent geometry will have the spatial reference of the first loaded child layer.

In this release, you can work with group layers using the C# API. Group layers are not currently supported in the Map Creator UI or components.

C# API

  • ArcGISGroupLayer class has been added to support group layers.
  • ArcGISGroupLayer enum value has been added to the ArcGISLayerType enum.
  • ArcGISGroupVisibilityMode enum has been added to enable the visibility mode for the group layer and all child layers.

Map Creator UI

The embedded add new layer panel under the Layers tab has been changed to a pop-up styled window with the + Add New button.

Unified shaders

Different types of shaders have been unified into a single shader for all rendering pipelines including URP, HDRP, and Legacy in this release.

Deprecations

This section lists OS and framework deprecation information.

OS and framework deprecations

  • Version 1.5.0 (current release) will be the last version to support iOS/iPadOS. A minimum of iOS/iPadOS 16 will be required at the next release.
  • Version 1.5.0 (current release) will be the last version to support macOS Monterey (version 12). A minimum of macOS Ventura (version 13) will be required at the next release.

Issues resolved

  • Some parts of meshes are missing when there are overlapping polygon areas with the Replace mesh modification type.

    Summary: When two overlapping mesh modifications of type Replace are created on the elevation surface, the overlapping region is not rendered.

Known issues

  • A basemap that fails to load will cause all layers in the ArcGIS Map to fail to display.

    Summary: If you are using a basemap that fails to load (for example, a preset basemap that requires an API Key, but no API Key is set) then the loading of the ArcGIS Map will be interrupted and it will appear blank. This also impacts the SDK samples that use a preset basemap.

    Workaround: Be sure to set an API key when using one of the preset basemaps.

  • View state report propagated warning messages

    Summary: When you subscribe to error messages by using the view state report, propagated error messages are logged in the Console although it's not an error.

    Workaround: No workaround available.

  • Changes on the component not reflected in the Map Creator UI.

    Summary: After making changes to the component, the Map Creator UI does not automatically update with the new values.

    Workaround: Click a different tab in the Map Creator UI to pull the new values from the component.

  • The extent dimension values are incorrectly applied in the scene when the extent center is away from the Equator.

    Summary: When you set an extent in the area away from the Equator in an ArcGIS Map with a geographic coordinate system, the shape dimension is bigger than the values set for the extension.

    Workaround: No workaround available.

  • Setting opacity to scene layers has no effect.

    Summary: Opacity does not work if the Unity material for the scene layer is opaque.

    Workaround: Change the scene layer material to the one that has transparency.

  • Some parts of integrated mesh scene layers flash while navigating around the area.

    Summary: When elevation is enabled in the scene, some parts of the integrated mesh scene layers flash.

    Workaround: Disable the elevation.

  • Mesh collider/Terrain occlusion issue

    Summary: When using an integrated mesh layer that dips below the elevation, although the terrain is occluded, the collider still exists which in some edge cases can make objects float above the integrated mesh.

    Workaround: No workaround available.

  • Integrated mesh scene layer behind terrain relief is rendered with URP.

    Summary: When an integrated mesh scene layer is behind terrain such as behind a mountain, the layer is visible.

    Workaround: No workaround available.

  • Custom basemap name will be lost after clicking play.

    Summary: The name for the custom basemap that is added from the Map Creator UI is automatically changed to User Basemap after clicking play.

    Workaround: No workaround available.

  • Error messages display in the Unity console after installing the SDK plugin.

    Summary: An error message of [fileanme] has no meta file, but it's in an immutable folder. The asset will be ignored displays in the Unity Console after adding the SDK plugin to the Unity project with Unity version 2021.3.22 or below.

    Workaround: Update your Unity minor version. For example, from 2021.3.11 to 2021.3.24.

  • In the Add New Basemap dialog, all options in the drop-down lists are disabled when using Unity 2021 versions earlier than Unity 2021.3.33f1 on macOS.

    Summary: When using Unity 2021 versions earlier than 2021.3.33f1 on macOS, it is not possible to select Type and Authentication in the Add New Basemap pop-up window opened from the Map Creator UI.

    Workaround: Use a higher Unity 2021 version (e.g. Unity 2021.3.33f1).

  • Some parts of the mesh are missing or have bad LOD for the area with the replace mesh modification type.

    Summary: For the flattened area with a new z value where the replace mesh modification type is used, some parts of the mesh are missing or have low LOD depending on the camera position.

    Workaround: No workaround available.

  • Scene layer mesh normals are inconsistent with the Universal Render Pipeline.

    Summary: Scene layers with inconsistent normals in the data are not rendered correctly.

    Workaround: No workaround available.

  • Changing building scene layer opacity doesn't apply in play mode

    Summary: After you change building scene layer opacity and hit play, the opacity value gets lost.

    Workaround: No workaround available.

  • Moving the scene camera by clicking on the Zoom to Layer option doesn't make any effect.

    Summary: When the layer source is an item page URL, clicking on the Zoom to Layer option doesn't move the scene camera.

    Workaround: Use the service URL instead of the item page URL as the layer source.

  • Plugin samples can't be imported into a Unity project if the ArcGIS Maps SDK for Unity plugin is downloaded from the Unity Asset Store.

    Summary: When the plugin is downloaded from the Unity Asset Store, users can't import the plugin sample to their Unity projects when the "Import" button is clicked.

    Workaround: No workaround available. Use the tarball version of the plugin from the Downloads page to import the plugin sample.

  • Setting the parent group layer opacity before the layer is loaded does not affect the child layer opacity.

    Summary: Changing the group layer opacity before the layer is loaded does not affect the opacities of its child layers (e.g. given the child layer initial opacity is 1.0 and setting the group layer initial opacity to 0.5, the result of its child layer opacity does not update to 0.5).

    Workaround: Set the layer opacity using Opacity once the layer is loaded. DoneLoading can be used to set a callback to update the layer.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.