Getting Started with Vuforia Engine in Unity

Table of contents

Vuforia Engine in Unity

The Unity Editor is a popular and useful authoring platform to create cutting edge augmented reality experiences for both handheld devices and digital eyewear. Visit https://unity.com to download and set up Unity. Add the Vuforia Engine Extension to your project, or start with our Core Samples that are available in the Unity Asset Store.

NOTE: If your project targets Android API level 31 or above we recommend updating to Vuforia Engine 10.8 or later. Updating will automatically add the manifest permission to allow data retrieval from sensors on Android devices using the VISLAM. Or, you can manually add the permission android.permission.HIGH_SAMPLING_RATE_SENSORS in the manifest file in Unity.

About Vuforia Engine

Vuforia Engine is a software development kit (SDK) for creating Augmented Reality apps. With the SDK, you add advanced computer vision functionality to your application, allowing it to recognize images, objects, and spaces with intuitive options to configure your app to interact with the real world.  

Vuforia Engine supports AR app development for Android, iOS, Magic Leap, and UWP devices. See: Vuforia Engine Supported Versions

This Getting Started guide will show you:

  • How to add Vuforia Engine to your Unity project.
  • How to set up Vuforia Engine’s Image Targets in Unity. 
  • How to add content and test your AR app.

Adding Vuforia Engine to a Unity project

Create an empty Unity project or open one of your existing Unity projects.

  1. In the Unity Hub, create a New Project and select the Unity version currently supported by Vuforia Engine.
  2. Select the 3D or 3D (URP) core template and enter a name for your Unity project.

    NOTE: Only the Vuforia Engine Extension is supported in URP. The Vuforia Core Samples and the Vuforia VFX Library are not compatible with URP since they contain unsupported assets.
  3. Create Project to open the empty Unity Project.

Add Vuforia Engine Extension

The Vuforia Engine is available as a Unity Asset Package that can be imported into your Unity project.

  1. Download the extension with the installer script from the Developer portal: Vuforia Engine Extension for Unity. Or, choose one of the alternative import methods documented in Vuforia Engine Package Hosting for Unity.
  2. Import the downloaded Unity Asset Package from the menu Assets -> Import Package -> Custom Package...
    Importing the package will let a script make the necessary changes in your Unity project to install or upgrade to the latest Vuforia Engine SDK. See which version you currently have in your project in the Package Manager in the Window tab.

To manually check if new updates are available, go to Help -> Vuforia Engine -> Check for Updates:

Vuforia Engine Setup

The Vuforia Engine is visible in the GameObject Menu after it is imported.

If this menu is missing, it could mean that the Vuforia Engine was not imported correctly.

Each scene that tracks and renders augmented content requires an ARCamera GameObject. It support apps for both handheld devices and digital eyewear.

Steps:

  1. Add an ARCamera GameObject from the Vuforia Engine menu. 
  2. Select the ARCamera and Open Vuforia Configuration (CMD+Shift+V or Ctrl+Shift+V) from the Inspector.
  3. Add a Vuforia Developer license key in the App License Key field. Add License opens the License Manager in a browser window. For a guide on getting a license key, see Engine Developer Portal Licenses.
    NOTE: Although there are measures taken to securely store your license key, to further enhance the security of your key, we recommend utilizing your own encryption solution.

Tip: You can delete the default Main Camera after adding an ARCamera. The ARCamera contains its own Camera component. The Main Camera is not needed unless you are using it to render a specific camera overlay, e.g., user interface or minimap.

Adding Vuforia Engine Features

After activating Vuforia Engine in Unity, you can add features from the Vuforia Engine menu to your project from the Unity GameObject Menu

Please refer to Features Overview for more information on all of the capabilities offered by the Vuforia Engine.

You can also add the Vuforia Core Samples from Unity’s Asset Store. The Core Samples include and demonstrate many of the Vuforia Engine Features. The steps below continue to set up a basic Vuforia AR scene. 

Steps:

  1. Navigate to the Vuforia Engine Menu and select Image Target. or any of the other targets you wish to use. Guides for using other targets are available from the Features Overview linked just above.

    Each Vuforia Engine GameObject is configured in the Inspector.  When a target is added, it will appear in the Hierarchy

  2. Select the Image Target GameObject from the Hierarchy and choose from the Type dropdown either
    1. From Image – Please see Instant Image Targets on further steps.
    2. From database – Image Target databases can be created in the Target Manager.
    3. Cloud Reco – Cloud Databases are also configured in the Target Manager. See Cloud Recognition for more information.
  3. In this example, we select From Database

    There isn't currently a database with Image Targets in the project. Vuforia will therefore ask you if you wish to Import Default Image Target Database in a pop-up window.

  4. Click Import
  5. On most Vuforia targets, you can set an Optimize Tracking For mode that improves tracking for special use cases. Select between Default and AR_Controller. Model Targets have an additional mode: Low_Feature_Objects. See Optimizing Model Target Tracking for information on the modes.

TIP: Always maintain an accurate scale between the Vuforia targets and the physical prints or objects. Using targets that deviate in size from the real-life object might impact the tracking quality. See Virtual Scene Scale in Unity for more information.

All Vuforia Targets include the following:

  • Vuforia <target type> Behaviour component lets you choose your target from a database and configure the target’s properties.
  • <target> ObserverEventHandler that lets you assign events and rendering conditions based on the tracking information returned by its Status and StatusInfo.
  • Target preview that lets you control whether the target preview should be visible in the scene during authoring.

On many Vuforia Targets, you can Add Occlusion Object and Add Target Representation. They are created as a child of the target.

  • The Occlusion Object adds a GameObject of the model with an occlusion material that lets your object visually obstruct digital content.
  • The Target Representation adds a GameObject of the model with the original material and mesh of the target and is useful for applying shaders, colliders or to highlight parts of the tracked object.

    NOTE: Virtual Scene Scale will not re-scale the occlusion object or target representation. Add the objects again after you have applied the value to the Virtual Scene Scale Factor.

NOTE: Area Targets are created with a pre-computed preview mesh. The settings to add occlusion or colliders are available in the AreaTargetBehaviour component. See Area Targets in Unity for details.

Upgrade your Vuforia target previews

From Vuforia Engine SDK 10.8 and forward, the Vuforia target preview representations are changed to improve the development workflow. Upgrading your project to the latest SDK, will display a message on your Vuforia Targets asking you to Upgrade This Target or Open Upgrade Dialog.

Click Upgrade This Target to upgrade the target to the new representation setup. See Adding Vuforia Engine Features on how that looks.

IMPORTANT: Upgrading alters the Vuforia target by removing the old preview that is a child of the Vuforia target. Pointers and references to the old preview should be updated to use a Target Representation instead.

Click the Open Upgrade Dialog to update all former previews in the scene or all former previews in all scenes in the project.

Adding Digital Assets

Add digital content to your target as children of the target. In this way, augmented content is only showed when that target is tracked.

  1. Add content as a child of the target by dragging your content on top of the target. 
    • Add a simple Cube from GameObject -> 3D Object -> Cube or place content from Unity’s Asset Store or from our Core Samples as pictured above. 
  2. See also the Vuforia VFX Library for free assets and shaders to style your AR app.

Print Physical Targets

A Vuforia target is in most cases, a physical print or object. If you have imported the Core Samples, you can find these in /Editor/Vuforia/ForPrint as PDFs. All printable Vuforia targets are also available here: Printable Target pdfs

Print without scaling. 

Playing the Scene

To see your scene in action you can use the Vuforia Engine Play Mode in the Game View that you can activate by pressing the Play button. You can use this feature to evaluate and rapidly prototype your scene(s) without having to deploy to a device.  

Play Mode is configured in the Vuforia Configuration section and you may use a webcam, simulator mode, or recording mode to test your Vuforia targets. See Vuforia Play Mode in Unity for more information.

Building and running your app

Vuforia Engine-powered Unity apps are built and run in the same way as other Unity apps for Android, iOS, and UWP.

See Unity’s tutorial on build for mobile and their documentation for build settings on all supported platforms.

Configuring a project for Digital Eyewear

Vuforia Engine supports a variety of optical and video see-through stereo rendering displays, including HoloLens, Magic Leap and Vuzix M400. Refer to the Digital Eyewear article for more information.

Next Steps

Essentials

Vuforia Engine Package Hosting for Unity 

Vuforia Play Mode in Unity

Working with Vuforia Engine in Unity

Learn More

How to Create and Load Targets in Unity

Virtual Scene Scale Factor in Unity

Using ARCore in Unity

Building Large Vuforia Engine Apps in Unity

AR Foundation

How to Use Vuforia Engine and AR Foundation in the same Unity Scene

Can this page be better?
Share your feedback via our issue tracker