You need a navigation mesh that is based on the sparse point cloud or dense mesh files that you can download from the Developer Portal.
This help page covers the workflow using Blender.
Log in to the Developer Portal and download one of the .ply files. I chose to download the sparse point cloud.
The point cloud is generated for a right-hand Y-up coordinate system. You may have to rotate it depending on your software of choice.
.ply file into Blender. You'll notice that the point cloud is oriented sideways.
Blender uses a right-handed system, but Z-up instead of Y-up.
In Blender, we need to rotate the point cloud 90 degrees on the X-axis to correct the point cloud orientation.
Now we can use the point cloud as a reference for building our scene. For navigation, we only need to create a mesh for areas where the user can move. In this case, the floor.
Use the basic modelling tools to build the geometry and align it to the point cloud. Make sure the floor level matches the floor level in the point cloud.
Export the geometry you created as a
.fbx file. The Default settings work just fine, but be sure to check "Selected Objects" to only export the floor geometry.
Open the NavigationSample scene in
Import your floor geometry into Unity and drag it into the scene under the AR Space Game Object. Set up your AR Map with the map data file of the location.
The point cloud preview and floor geometry should align.
Put the floor geometry onto the Navigation layer in the inspector. The NavMesh generation is set up to consider all geometry in the Navigation layer for baking the final Unity navigation mesh.
Select the Generate Navigation Mesh Here Game Object and click Bake in the inspector. You should see the NavMesh Data overlayed in the viewport.
The walkable area should cover all of the floor and should align with it.
Navigation is all set up, now we only need targets.
A navigation target in this sample is simply a Game Object with IsNavigationTarget.cs script applied to it.
The script has options for setting up the targets Category, Name and Icon that will appear in the Target List Menu later.
There are three predefined targets in the scene.
To test the app, you should place the first two targets on top of floor geometry and the last outside the Geometry.
Open the Build Settings and only add or select the NavigationSample to be included. Build the app for your device.
When you look at the location you had mapped with the app running, the device should be able to localize and find its pose in seconds.
After successfully localizing, the floor geometry should align to the real world. Press Show Navigation Targets and pick a target to test navigation.