General
Yes, ArcGIS Maps SDK for Unreal Engine is a fully supported SDK to use with ArcGIS services, map tile packages, and scene layer packages.
Windows and macOS. Go to System requirements to see the specific requirements.
Windows, macOS, Android, iOS, and XR platforms. Go to Deployment to see the specific deployment settings.
You can find the ArcGIS Maps SDK for Game Engines official community at Esri Community.
New ideas are very welcome. You can suggest your idea in the ArcGIS Maps SDK for Game Engines official community at Esri Community.
Feel free to ask questions in the ArcGIS Maps SDK for Game Engines official community at Esri community.
Visit the glossary and the Mapping and location services guide.
ArcGIS services
The ArcGIS Maps SDK for Unreal Engine has built in functionality to access the following ArcGIS services:
- Basemap layer service
- Elevation service (limited to single elevation source)
- Map tile services
- Scene service (limited to 3D object scene layers and integrated mesh scene layers)
You can also access other services such as the routing service by using ArcGIS REST APIs. To see examples of how to use ArcGIS REST API, go to Feature layer query.
ArcGIS location services
Yes, you must provide an API key or implement OAuth 2.0 with user authentication or app credential authentication to access ArcGIS location services.
ArcGIS Enterprise services
For services that are private, yes, you need to provide authentication to access ArcGIS Enterprise services. You typically implement OAuth 2.0 with user authentication or app credential authentication to do so. Public services do not require authentication.
To learn more about the different types of authentication, go to Security and authentication in the Security and authentication guide.
No. The raster map tile services are no longer maintained or recommended for use by Esri.
To learn more about ArcGIS location services and their capabilities, go to the Mapping and location services guide.
To learn more about ArcGIS Enterprise services and their capabilities, go to the REST API documentation.
Service usage and billing
You need either an ArcGIS Location Platform account or ArcGIS Online account. This will give you the ability to access your portal, create API keys, set up OAuth 2.0, and manage your data.
To learn more about account types, go to Accounts in the Security and authentication guide.
The cost to access ArcGIS location services depends on the type of ArcGIS account you have and the services you use.
-
If you have an ArcGIS Location Platform account, you are billed in US dollars. To determine the cost of accessing different services, go to Pricing. A free tier of access is available for some services.
-
If you have an ArcGIS Online account, you are billed in credits. To determine the cost of accessing different services, go to Understanding credits.
If you have ArcGIS Enterprise, there is no cost for accessing your own ArcGIS services.
To learn more about offline apps and deployment, go to the FAQ page in the _Offline mapping apps guide.
Esri's Terms of use is located in the Offline mapping apps guide.
Troubleshooting
Before troubleshooting layer loading issues, make sure that you have added an ArcGIS View State Logging Component. This component notifies you of any updates to the status of layers, elevation sources, and the view. These events tell you whether your data is active, if it fails to load, or any usage warnings that come with using a specific dataset to help you determine when there is a problem with your GIS data. If the view state log doesn't give you the exact information you need, you can follow the checklist below:
-
Check that you use supported format for basemaps and data layers and elevation layers.
-
If you are adding 3D object scene layers or Integrated mesh scene layers, your file needs to be version 1.7+. You can check this by opening the JSON file that is associated with the service. For the online services, if the JSON content is not displayed by accessing the service URL, try to add
?f=json
at the end of the service URL to access the content. For local data, you can extract the file as a zip archive, and open the .json file. -
Check if your spatial reference is supported by the map type. Global scenes support all the geographic coordinate systems. For a projected coordinate system, only Web Mercator (Auxiliary Sphere) (WKID: 3857) is supported. Local scenes support all projected coordinate systems. For the geographic coordinate system, WGS 84 (WKID: 4326) and China Geodetic Coordinate System 2000 (WKID: 4490) are supported.
-
Your data's spatial reference may differ from your ArcGIS Map's spatial reference which prevents your data from loading. This is because ArcGIS Maps SDK for Unreal Engine uses the first layer added (oftentimes the basemap) to determine the spatial reference for the ArcGIS Map. In this case, reset the spatial reference of ArcGIS Map by removing the existing basemap/first layer and adding the new layer as the first layer. Make sure to save the level and reload for ArcGIS Map to be updated for the editor mode.
-
When you use a private online service in your app, you need to set up OAuth 2.0 with user authentication or app credential authentication. Private online services are loaded only after successful authentication.
-
If all of the above are correct and your data is loaded in other products like ArcGIS Pro, your data might be corrupted or saved in an old format. Try to export the file package again or republish the service.
The Modes Panel UI pushes values to Components. However, when you change the values in the Component for the settings in the opened Modes Panel UI, not all changes can be pushed from the Component to the Modes Panel UI. Click on another tab of the Modes Panel UI to pull the new values from the Component.
Some changes that you make with the Modes Panel UI or from the Details panel may not be reflected in the editor Viewport rendering.
Editor mode camera and Play mode camera are not in sync. When you change the camera position with the Pawn (e.g. ArcGIS Pawn), double-click the Pawn in the Outliner panel to move the camera position to the configured place. If you want to adjust the camera Heading, Roll, and Pitch to the configured values, click Play once. You can set the initial camera position to the current editor view camera position, right-click the Pawn in the Outliner panel, and select Snap Object to View. You can also click the Align with View button in the Camera tab from the Modes Panel UI.
OAuth challenge handler will be triggered when the private layer starts to load. When you configure OAuth for the first time, save the level once and reload it to trigger the pop-up window and sign in.
Many factors can affect performance. You can find performance and optimization tips in the Unreal Engine Documentation. Depending on the platform you are going to deploy, you can also find additional tips in the Sharing and Releasing Projects section.
Disabling the editor mode can increase performance while you are developing an app. You can disable the feature via C++ API or from the Enable Editor Mode checkbox if you have the ArcGIS Map Actor in your level.
When you use a powerful machine to develop or run your app, ArcGIS Maps SDK for Unreal Engine may not be using all the power that the machine has. You can adjust memory allowance manually by specifying system memory and video memory values in Esri
with Set
.
ArcGIS Maps SDK for Unreal Engine requires to have at least one C++ class in the project's source code folder. The C++ class can be empty and you can create it from Tools > New C++ Class....
You can ensure your project has an empty C++ class by creating a new project as a C++ project in Unreal Engine's project creation wizard. See the Add the plugin to a new project page for more information.
Unreal Engine has the Disable real-time viewports by default in Remote Sessions option in the Editor Preferences is enabled by default. Remove the check from this option in Edit > Editor Preferences when you use Unreal Engine in a remote session to see the ArcGIS Map in the Viewport.
Some building scene layers might have the root sublayers' visibility set to false by default when they are being created in ArcGIS Pro or Autodesk Revit. You can check the metadata of the building scene layer and turn on the sublayer visibility using the C++ API.