# Unity Integration

Install our Unity plugin to import ShapesXR spaces into the Unity editor. This allows you to enhance your spaces with interactive elements, model replacements, particle systems, and more. However, please note that exporting spaces back to ShapesXR is currently not supported.

### Installing the Unity Plugin

{% hint style="warning" %}
Please note that we highly recommend using **Unity 6**, as it ensures a smoother experience without additional setup.&#x20;

If you've already installed an old version of the Unity plugin, please remove it and install it again by following the steps below.
{% endhint %}

1. [Download the package](https://tvori-builds.s3.us-east-1.amazonaws.com/UnityPlugin/ShapesXRUnityIntegrationV1.30.zip)
2. Install Unity (go to the official[ Unity page](https://unity3d.com/get-unity/download) and install Unity Hub by clicking the Download button). *If you already have it installed, skip to the next step.*
3. Open the Unity Hub and click the “New Project” button.&#x20;

<figure><img src="https://1564817110-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV5IFh3rk5kqfCwJPPYhE%2Fuploads%2Fcjl8MlgoUGtjoFwRdAx5%2FScreenshot%202025-10-29%20at%2016.06.53.png?alt=media&#x26;token=ffa1f1aa-f200-4970-b599-af841b467ec9" alt=""><figcaption></figcaption></figure>

4. Choose the Editor Version (we recommend version 6), “Universal 3D” template, set the project name and location, and then click “Create project”.

<figure><img src="https://1564817110-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV5IFh3rk5kqfCwJPPYhE%2Fuploads%2FDE7xfJvElActAzHtS1QM%2FScreenshot%202025-10-29%20at%2016.07.18.png?alt=media&#x26;token=118e6269-b5ff-4c30-b4bb-31dee4ba85a4" alt=""><figcaption></figcaption></figure>

5. Go to Edit -> Project Settings -> Package Manager and add the following dependencies:

<figure><img src="https://1564817110-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV5IFh3rk5kqfCwJPPYhE%2Fuploads%2Fb02R6EDn4VrpCCC3MU44%2FUntitled.png?alt=media&#x26;token=f8cf33e9-4435-4596-8db2-30e59d93479d" alt=""><figcaption></figcaption></figure>

**Alternatively**, you can open the **YOUR\_PROJECT/Packages** directory in the file manager, find the ***manifest.json*** file there, open it, add this block on top, before the “dependencies” line, and save changes:

```
"scopedRegistries": [
    {
      "name": "package.openupm.com",
      "url": "https://package.openupm.com",
      "scopes": [
        "com.neuecc.messagepack"
      ]
    }
  ],
```

Please note how it should look in the manifest.json file:

<figure><img src="https://1564817110-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV5IFh3rk5kqfCwJPPYhE%2Fuploads%2F6uGS9SE8V1I0kHd0vkvC%2Fimage.png?alt=media&#x26;token=ce5d4c76-4f0a-4dec-9e0c-0ee2365127fa" alt=""><figcaption><p>How it should look in the manifest.json file</p></figcaption></figure>

6. Open the **YOUR\_PROJECT/Packages** directory in the file manager, and unpack the downloaded zip into it.

<figure><img src="https://1564817110-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV5IFh3rk5kqfCwJPPYhE%2Fuploads%2FwmlLy6ZCRyFl0F6SSoh7%2FScreenshot%202025-10-29%20at%2016.13.56.png?alt=media&#x26;token=33d484e0-1ec1-4dbe-95a1-4b70ef311bb0" alt=""><figcaption></figcaption></figure>

7. Return to your Unity project and wait until the import process is complete and all scripts have finished compiling.\
   Once done, the **ShapesXR** tab will appear in the main menu — your plugin is now ready to use.

<figure><img src="https://1564817110-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV5IFh3rk5kqfCwJPPYhE%2Fuploads%2FTh9YcE4zbDEhNloxvT8B%2FScreenshot%202025-03-12%20at%2008.37.20.png?alt=media&#x26;token=b0154e2d-f2c2-484c-b14a-a7113b31333f" alt="" width="563"><figcaption></figcaption></figure>

### Unity plugin usage

1. Go to the **ShapesXR** tab and select **Importer**.\
   The plugin window will open, and you can dock it anywhere you prefer — for example, next to the **Inspector** tab.

<figure><img src="https://1564817110-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV5IFh3rk5kqfCwJPPYhE%2Fuploads%2FpcGutVsIxTMRJr6nJkuP%2FScreenshot%202025-03-13%20at%2016.16.06.png?alt=media&#x26;token=2cf2f53f-8b7d-44ca-90a7-1699c7fad65a" alt=""><figcaption></figcaption></figure>

2. In the **ShapesXR Importer** window, enter the code of the space you want to import (learn how to find the Space code [here](https://learn.shapesxr.com/export-and-sharing/sharing-spaces-via-app-web)) in the input field, then click **Import Space**.

<figure><img src="https://1564817110-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV5IFh3rk5kqfCwJPPYhE%2Fuploads%2FmuoKmKJUuUzRYJOJc8gK%2FScreenshot%202025-03-13%20at%2016.18.25.png?alt=media&#x26;token=5d9e4d8f-c1ef-4d00-a842-f24e91c741b1" alt=""><figcaption></figcaption></figure>

3. If prompted by Unity during the first space import, please import the **TMP Essentials** package.

<figure><img src="https://1564817110-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV5IFh3rk5kqfCwJPPYhE%2Fuploads%2FHZM3sEl2vdwZzKWSdhvq%2FScreenshot%202024-08-05%20at%2012.03.31.png?alt=media&#x26;token=5570fab9-4fd2-4c5a-a694-2de27eb90b4d" alt="" width="563"><figcaption></figcaption></figure>

4. After the space is imported, a new game object will appear in the scene, representing your space along with all its scenes and viewpoints.

<figure><img src="https://1564817110-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV5IFh3rk5kqfCwJPPYhE%2Fuploads%2FOm3qOUiGzTJrz8sUr4ZF%2FScreenshot%202025-03-13%20at%2016.23.34.png?alt=media&#x26;token=95324968-3dcc-4d72-a9ae-99f3edce0198" alt=""><figcaption></figcaption></figure>

5. Select your space in the **Hierarchy**. In the **Inspector** tab, you’ll see the **Space Descriptor** script enabled.\
   This script lets you view the space code, quickly cycle through scenes using a slider, and reimport your space. You can safely remove this component if you don’t need these functions.

<figure><img src="https://1564817110-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV5IFh3rk5kqfCwJPPYhE%2Fuploads%2FTgaeWBfGUYA3K6uvgfTp%2Fimage.avif?alt=media&#x26;token=094467c5-2d0e-4008-82ca-fa6374f601db" alt=""><figcaption></figcaption></figure>

### GLB/GLTF formats support

{% hint style="warning" %}
Please note that we don’t support multiple textures per material yet and your models must comply with import recommendations for best results.
{% endhint %}

You can import GLB/GLTF models from your space to Unity.

* To import them into Unity, you need to install a GLB/GLTF plugin. We recommend [glTFast](https://github.com/atteneder/glTFast) ([GitHub - atteneder/glTFast: Efficient glTF 3D import / export package for Unity](https://github.com/atteneder/glTFast))
* In case you’re using another plugin, you should add a name for the shader property for your main texture, since every plugin might generate and use different materials/shaders.

<figure><img src="https://1564817110-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV5IFh3rk5kqfCwJPPYhE%2Fuploads%2FzJW5myFRqOTL66HyWAL3%2Fimage%20(5).png?alt=media&#x26;token=3dff9b2e-1c04-446f-befb-d4175fccb258" alt=""><figcaption><p>Add a name for shader property for your main texture</p></figcaption></figure>

***

Join our [Discord server](https://discord.com/invite/3xET92YteE) to ask any questions regarding the Unity plugin and share your creativity with us. Or email us with any questions at <Support@shapesxr.com>.
