> For the complete documentation index, see [llms.txt](https://multiset.gitbook.io/multiset/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://multiset.gitbook.io/multiset/quick-access/multiset-unity-sdk.md).

# MultiSet Unity SDK

The MultiSet SDK provides powerful localization, navigation, and AR tracking capabilities for Unity applications. This package enables developers to integrate advanced spatial computing features with minimal setup.

## 📋 Prerequisites

Before getting started, ensure you have:

* **Unity** [**6000.0.36f1**](https://unity.com/download) **or later** (minimum: Unity 2022.3.36+)
* **Valid MultiSet** [**credentials**](/multiset/basics/credentials.md) (Client ID and Client Secret)
* **Map/MapSet/Object codes** from your MultiSet Developer Portal
* **iOS/Android development tools** for mobile deployment
* **Basic Unity development experience**

## Project Setup :

Open **Unity Hub** and create a new **3D Project** (Built-In Render Pipeline) or open your existing project

<figure><img src="/files/kAXGXj06YRPaNIAfwn1G" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
If you're using the **Universal 3D (SRP)** template, complete the following steps to enable Universal 3D support before building the app: : [**Universal 3D Support**](/multiset/quick-access/multiset-unity-sdk/universal-3d-core-support.md)
{% endhint %}

## SDK Installation

### Using Git URL (Recommended)

1. Navigate to **Window → Package Manager**
2. Click the **"+"** button in the top-left corner
3. Select **"Add package from git URL"**
4. Enter the following URL and click **Add**:

```
https://github.com/MultiSet-AI/multiset-unity-sdk.git
```

<figure><img src="/files/XOLXOm4xjbg2n0DIhFtv" alt=""><figcaption></figcaption></figure>

### Verify Installation

After installation, you should see **"MultiSet-SDK"** listed in the Package Manager under **"In Project"**.

<figure><img src="/files/aw5ZI5LXhUvycKSbDPQ8" alt=""><figcaption></figcaption></figure>

## Dependencies

The SDK automatically installs these required packages:

* **Unity Cloud - Draco** (5.4.0)
* **Unity Cloud - glTFast** (6.14.1)
* **AR Foundation** (6.0.3)
* **AI Navigation** (2.0.5)

## [Sample Scenes](/multiset/unity-sdk/sample-scenes.md)

The SDK includes comprehensive sample scenes to demonstrate key features.

### Import Sample Scenes

1. Open **Window → Package Manager**
2. Find **"MultiSet-SDK"** in the package list
3. Click on the package to view details
4. Navigate to the **"Samples"** tab
5. Click **"Import"** next to **"Sample Scenes"**

<figure><img src="/files/srdINkcnjbsUUCfNwSxG" alt=""><figcaption></figcaption></figure>

The samples will be imported to:

```
Assets/Samples/MultiSet-SDK/[version]/Sample Scenes/
```

<figure><img src="/files/yj7R5rxOQ7QtS0MoqpvG" alt=""><figcaption></figcaption></figure>

### Available Sample Scenes

| Scene                               | Purpose                          | Location          |
| ----------------------------------- | -------------------------------- | ----------------- |
| **Localization.unity**              | Basic localization functionality | `Localization/`   |
| **Single Frame Localization.unity** | Single Frame Localization        | `Localization/`   |
| **ObjectTracking.unity**            | 3D model tracking                | `ObjectTracking/` |
| **Navigation.unity**                | AR navigation features           | `Navigation/`     |
| **Training.unity**                  | Training mode capabilities       | `Training/`       |

## Configuration

### Step 1: Configure API Credentials

1. Get your SDK credentials from : <https://developer.multiset.ai/credentials>
2. Navigate to the configuration file:

   ```
   Assets/Samples/MultiSet-SDK/[version]/Sample Scenes/Resources/MultiSetConfig.asset
   ```
3. Open the ScriptableObject file in the Inspector
4. Enter ClientId and ClientSecret values:

   ```csharp
   Client Id = "YOUR_CLIENT_ID"
   Client Secret = "YOUR_CLIENT_SECRET"
   ```

<figure><img src="/files/Q2eXuzZSVpOwP7bvTNZd" alt=""><figcaption></figcaption></figure>

### Step 2: Configure Map Settings

1. Open your desired sample scene (e.g., `Localization.unity`)
2. Select the [**MultisetSdkManager**](/multiset/unity-sdk/api-reference/multisetsdkmanager.md) GameObject in the Hierarchy
3. In the Inspector, locate the [**MapLocalizationManager**](/multiset/unity-sdk/api-reference/maplocalizationmanager.md) component
4. Configure your localization method:
   * **Map**: For single, specific locations
   * **MapSet**: For multiple related locations or larger coverage areas
   * **Object Tracking**: For 3D model tracking scenarios in [**ObjectTrackingManager**](/multiset/unity-sdk/api-reference/modelsettrackingmanager.md)
5. Enter your corresponding code:
   * **Map Code**: For individual location mapping
   * **MapSet Code**: For grouped location sets

<figure><img src="/files/zJSJFDKWDuwcUCo3GUys" alt=""><figcaption></figcaption></figure>

> **💡 Tip:** You can obtain these codes from your MultiSet dashboard after creating maps.

### Configure Object Tracking Settings

1. Open ObjectTracking sample scene
2. Select the [**MultisetSdkManager**](/multiset/unity-sdk/api-reference/multisetsdkmanager.md) GameObject in the Hierarchy
3. In the Inspector, locate the **ObjectTrackingManager** component
4. Enter your corresponding **Object code**

<figure><img src="/files/ahd80auMagIqLEru2YRI" alt=""><figcaption></figcaption></figure>

### Add Map Code and 3D Mesh (.glb) for AR content anchoring.

You can copy the Map Code from Maps section in the developer portal, import the scan in the Unity project, and add the scan under "Map Space". You can use the sample script **Map Mesh Downloader** provided in SDK to download Meshes directly in the SDK.

<figure><img src="/files/KFnyPHWRzd2fF3Xo1u3h" alt="" width="375"><figcaption></figcaption></figure>

Select MultiSet SDK Manager and the Map Code of the map you want to perform localization.

{% hint style="success" %}
Add all your AR content that you want to anchor with respect to map under "Map Space" game object
{% endhint %}

{% hint style="danger" %}
The .glb mesh is only required as a reference for Unity content placement, it is not used during localization, so please remove this mesh in your final build
{% endhint %}

<div><figure><img src="/files/AT9HmAMEn3elQUDmhCv3" alt=""><figcaption></figcaption></figure> <figure><img src="/files/8RGzoSaTz8js1FqQcqEL" alt=""><figcaption></figcaption></figure></div>

### Add your asset under "Map Space" GameObject.

Make sure to add all your assets as children of "Map Space" object, so post-successful localization your assets will appear at the right location with respect to the Map

<figure><img src="/files/df9oAG3Ym8uqz5iLgKJa" alt=""><figcaption></figcaption></figure>

### Build for mobile devices

Once you are done adding all your assets in right place, then you can select **File -> Build Profiles-> Choose iOS/Android -> Build**

<figure><img src="/files/7xCFQRnEpJjjSu6idW7J" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}

#### <sub>For device-specific build settings, follow these instructions:</sub> [<sub>Building Steps</sub>](/multiset/unity-sdk/building-steps.md)

{% endhint %}

### Try out localization

Once you run the app on a mobile device, the app will try to perform localization at the start of the scene and will set all the AR content relative to the Map of the area.

<figure><img src="/files/yPXkMEvuptfrQR8NakKw" alt="" width="188"><figcaption></figcaption></figure>

## <sub>Updating SDK Package</sub>

To update the SDK:

1. Open **Package Manager**
2. Find **MultiSet-SDK**
3. Click **"Update"** if available
4. Or remove and re-add with latest Git URL

For manual updates, use:

```
https://github.com/MultiSet-AI/multiset-unity-sdk.git#latest
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://multiset.gitbook.io/multiset/quick-access/multiset-unity-sdk.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
