Skip to main content

How to Place Content in Real-World Locations Using Location AR

The AR Location is the highest-level abstraction that allows us to "anchor" virtual objects to the real world.

Placing Cube in Unity

This how-to covers:

  • Importing a real-world location from the Geospatial Browser (GSB) into Unity;
  • Placing content in a real-world location;
  • Testing placed content, either using a mockup or on location.

Prerequisites

  1. You will need a Unity project with ARDK installed and a set-up basic AR scene. For more information, see Setup ARDK 3 and Setting up an AR Scene.
  2. You will need a valid API Key.

Adding a Real-World Location to Unity

To add an AR location to Unity:

  1. Go to the Geospatial Browser and find the location you want to build content for. The data will download as a .zip file; do not unzip it. For more information on downloading location data, see Downloading Meshes.
  2. Drag and drop the downloaded zip file into the Assets directory in the Project window. Once the import process completes, it will create two assets, a Mesh .prefab file and a Manifest .asset file.
  3. Turn on Persistent Anchors in Lightship Settings:
    1. Click the Lightship top menu, then select Settings.
    2. In the Inspector window, check the Enabled box next to Persistent Anchors.
    Unity menu with 'Enable Persistent Anchors' checked
  4. Add an AR Location Manager component to the XROrigin:
    1. Select the XROrigin in the Hierarchy, then, in the Inspector window, click Add Component and search for ARLocationManager.
    2. In the ARLocationManager Component, click Add AR Location to create a new ARLocation.
  5. In the Hierarchy, select the ARLocation to show its Component in the Inspector. Drag and drop the Manifest from the Assets directory to the AR Location Manifest field in the Component.
    1. This will update the name of the ARLocation GameObject to match the manifest and set up its fields for tracking.

Adding Real-World AR Content

When adding your AR content, remember the following:

  1. Add your AR content as a child of the manifest (ARLocation). For example, to add a Cube to a location:
    1. In the Hierarchy, right-click the ARLocation, then mouse over 3D Object and select Cube.
    2. In the Inspector, set the cube's Scale to 0.5. Set its position so that you can see it in your test location.
  2. Enable auto-tracking:
    1. In the Hierarchy, select the XROrigin, then, in the Inspector window, check the Auto-Track box in the ARLocationManager Component.
    2. When auto-tracking is enabled, the ARLocationManager will start tracking on the currently active ARLocation when the component is enabled. See How to Use Location AR with Code for more options and information.
Remote authoring content

When an ARLocation is tracked during runtime, it is placed in the ARTrackable field of the ARPersistentAnchor it is associated with. This maintains the relative position of all children of the ARLocation in the scene. When placing or updating child content of the ARLocation, make your changes in local transform space to make sure the scene stays consistent.

Testing Real-World AR Content

The most accurate way to test real-world AR content is by building your Unity app to a device and physically visiting the location to test it out. Because this is not always possible, Lightship also provides a Simulation subsystem for Location AR. To enable Simulation, see the Simulation documentation

Simulated persistent anchors will have a consistent trackableId, but these trackableIds are not consistent with resolving real anchors (Playback or Live VPS).

tip

You can also test localizations using Playback. See How to Setup Playback.

More Information