General
Yes, ArcGIS Maps SDK for Unity is a fully supported SDK to use with ArcGIS services, map tile packages, and scene layer packages.
Windows, macOS, and Linux. Go to System requirements to see the specific requirements.
Windows, macOS, Linux, 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 Unity 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 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.
See the Esri's Terms of Use page.
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 your camera is looking at the correct area. If you are using the Map Creator UI, you can use zoom to to go to your data extent.
-
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, WGS84 (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 Unity 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 application credentials. 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 Map Creator UI pushes values to components. However, when you change the values in the component for the settings in the opened Map Creator UI panel, not all changes can be pushed from the component to the Map Creator UI. Click another tab of the Map Creator UI to pull the new values from the component.
Performance is related to many factors. In the Unity Manual you can find performance and optimization tips.
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 component in your scene.
When you use a powerful machine to develop or run your app, ArcGIS Maps SDK for Unity may not be using all the power that the machine has. You can implement the I
interface and set an instance of the implementation to ArcGIS
. You can also adjust memory allowance manually by specifying system memory and video memory values in Game
with Set
. See Unity's documentation: Memory in Unity for more information about working with memory in Unity.
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.
The ArcGIS Camera Controller supports both the old and new Input Systems in Unity. A compile error will occur when you set the Active Input Handling option to Input System Package (New) or Both under the Player Settings without installing the new Input System Package. If you are prompted with the Enter Safe Mode? window, click the Ignore button to open the project, then open the Package Manager, switch the packages to Packages: Unity Registry, find Input System from the list, and click the Install button.
To upgrade to a new version of the SDK plugin, go to the Package Manager and remove the current version of the ArcGIS Maps SDK for Unity, then update the plugin version by following the Install and Setup guide.