-
Notifications
You must be signed in to change notification settings - Fork 130
Getting Started
![]() |
![]() |
![]() |
---|---|---|
To develop apps for mixed reality headsets, you need the Windows 10 Fall Creators Update or newer | Check the Unity Support Matrix for a list of supported Unity versions | Visual Studio is used for code editing, deploying and building UWP app packages |
-
Sign-in to the Bing Maps Dev Center.
-
Select My keys under My Account, and select the option to create a new key.
-
Provide the following required information to create a key:
- Application name: The name of the application.
- Key type: Basic or Enterprise. Key types are explained here.
- Application type: Select Other Public Mobile App.
-
Click the Create button to get akey.
For more information about how developer key usage is accounted, see Understanding Bing Maps Transactions.
-
Option 1: Use the Sample Project.
The sample project provides a good starting point. It is configured to use the latest version of the SDK, a snapshot of MRTK, and a collection of sample scenes.
- Clone the repository
- After cloning, use Unity Hub to open the
SampleProject
folder. - Once the project has opened, follow the instructions to provide the developer key.
-
This requires modifying Unity's package manifest to include a reference to the SDK package.
-
Locate the Unity project's folder.
In the
Packages
directory, openmanifest.json
.Append the
scopedRegistries
section to the beginning of the manifest and modifydependencies
as follows:{ "scopedRegistries": [ { "name": "Maps SDK for Unity", "url": "https://unity.virtualearth.net/npm/registry/", "scopes": [ "com.microsoft.maps" ] } ], "dependencies": { "com.microsoft.maps.unity": "0.11.1", <NOTE: Existing dependencies should not be modified.> } }
-
Return to the Unity Editor; A dialog should appear showing the progress of importing the new package.
-
(Optional) If the project targets the universal render pipeline (URP), install the support package.
-
- Add a new GameObject to the Scene.
- Add a MapRenderer component to the GameObject:
Add component
->Scripts
->Microsoft.Maps.Unity
->MapRenderer
5. Provide a Bing Maps develper key
After creating a Bing Maps key, it needs to be provided to the map.
-
- In the
Assets
directory of the project, create a directory namedResources
. - In the
Resources
directory, create a file namedMapSessionConfig.txt
. - Copy the developer key into
MapSessionConfig.txt
. - Finally, ignore this file from source control e.g., add
MapSessionConfig.txt
to gitignore.
- In the
-
- Set the
MapSession
key source toDo Not Save
. - Using a custom script, load the key how you chose e.g., setup an Azure Function to retrieve the key, as explained in this blog post.
- Set the key on the
MapSession.DeveloperKey
property.
- Set the
Checkout Configuring the MapRenerer for more details on the various map visualization options.
When new versions of the SDK are published, they will be shown in Package Manager.
To be notified when new versions are available, watch for updates to the Changelog.
Versions before the release of 0.9.0 were provided as a NuGet package and used a NuGet plugin for Unity to manage installation and updates of the SDK.
As of version 0.9.0, the SDK is available as a Unity package which can be installed and updated from within the editor using the Package Manager window.
To migrate from an older version of the SDK to 0.9.0 or newer, follow the steps below.
To migrate from the NuGet package to the NPM package:
- Remove the Microsoft.Maps.Unity NuGet package.
Nuget -> Manage Nuget Packages
- Go to
Installed
tab - Uninstall
Microsoft.Maps.Unity
- If no other NuGet packages are being used in the project, the NuGet plugin can be removed by deleting the following:
-
Assets\Nuget
directory Assets\Nuget.config
-
Assets\Packages
directory Assets\Packages.config
-
- Next, follow the steps here to install the latest version of the SDK via the Package Manager.
Version 0.9.0 introduced various breaking changes due to moving components from the DLL to scripts.
An editor extension has been provided to automate the process of upgrading the GUIDs.
In the editor, go to Assets -> Maps SDK for Unity -> Upgrade Component GUIDs
Other breaking changes to APIs are not automated. If more information is required to resolve other errors in the scripts, refer to the Changelog for description of APIs that were modified.
- Configuring the map
- Attaching GameObjects
- Adding labels
- Animating the map
- Raycasting the map
- Displaying copyrights
- Customizing map data
- Displaying contour lines
- Microsoft.Geospatial
- Microsoft.Geospatial.VectorMath
-
Microsoft.Maps.Unity
- ClippingVolumeDistanceTextureResolution
- ClusterMapPin
- CoordinateClamping
- DefaultElevationTileLayer
- DefaultTextureTileLayer
- DefaultTrafficTextureTileLayer
- ElevationTile
- ElevationTileLayer
- ElevationTileLayerList
- FontStyle
- FontWeight
- HttpTextureTileLayer
- IMapSceneAnimationController
- Intersection
- IntersectionType
- IPinnable
- LanguageChangedEvent
- LatLonAltUnityEvent
- LatLonUnityEvent
- LatLonWrapper
- MapColliderType
- MapConstants
- MapContourLineLayer
- MapCopyrightAlignment
- MapCopyrightLayer
- MapDataCache
- MapDataCacheBase
- MapDeveloperKeySource
- MapImageryStyle
- MapImageryType
- MapInteractionController
- MapInteractionHandler
- MapLabel
- MapLabelLayer
- MapLayer
- MapMouseInteractionHandler
- MapPin
- MapPinLayer
- MapRenderer
- MapRendererBase
- MapRendererRaycastHit
- MapRendererTransformExtensions
- MapScaleRatioExtensions
- MapScene
- MapSceneAnimationController
- MapSceneAnimationKind
- MapSceneOfBoundingBox
- MapSceneOfLabelAndZoomLevel
- MapSceneOfLocationAndZoomLevel
- MapSession
- MapShape
- MapTerrainType
- MapTouchInteractionHandler
- ObservableList
- ObservableMapPinList
- ServiceOptions
- Style
- SystemLangaugeConverter
- TextureTile
- TextureTileLayer
- TextureTileLayerList
- TileLayer
- TileLayerList
- UnityTaskFactory
- UnityWebRequestAwaiter
- UnityWebRequestAwaiterExtensionMethods
- WaitForMapLoaded
- WaitForMapSceneAnimation
- Microsoft.Maps.Unity.Search