# Structure of IOs

When you create an Interactive Object (IO), a new structure is generated from it in the Hierarchy panel of the scene:

<figure><img src="/files/6apU4R8fTzVF3BfE7AmR" alt=""><figcaption><p>IO Structure</p></figcaption></figure>

* **Interactions**: list of interactions defined by the user. You can add as many interactions as needed for each Interactive Object. To add a new interaction, just duplicate the “empty” one and rename the new interaction you created.
* **Visuals**: List of user’s visual assets defining the visual aspect of this IO. Visuals can contain any number of 2D and/or 3D asset(s). This is where the base asset can be found after converting it into an IO.

{% hint style="info" %}
*Note: You can also leave the Visuals empty, just keep the 'Visuals' node and use the IO as a trigger zone like a checkpoint, an invisible button, or simply a Manager object assigning behaviours to other objects in your scene.*
{% endhint %}

* **Proximity:** this collider defines the zone around the IO that is going to detect proximity with other objects. Used for the 'Proximity' condition

  Each IO has a proximity collider. It is up to you to define its shape, position and size. By default, we provide a simple box collider but you can replace it with any collider type as long as ‘Is Trigger’ is checked.
* **Gaze:** this collider defines the zone of the IO reacting to the user’s gaze (camera forward direction). Used for the 'Gaze' condition.

  It is up to you to define its shape, position and size. By default, we provide a simple cube but you can replace it with any shape as long as ‘Is Trigger’ is checked.
* **Hand Hover**: this collider defines a zone around the IO detecting the controller raycast. Used for the 'Point and Click' condition.

  It is up to you to define its shape and size. By default, we provide a simple box collider but you can replace it with any shape as long as ‘Is Trigger’ is checked.
* **Manipulate**: this collider defines the zone around the IO allowing to manipulate it.

  It is up to you to define its shape and size. By default, we provide a simple box collider but you can replace it with any shape as long as ‘Is Trigger’ is checked. In general this zone matches the shape of the object.
* **Snap Left/Right:** these transform objects (a position in 3D space) define the position and rotation the IO will take when grabbed by the user’s 'hands' (controllers).

  It is up to you to define their position and rotation


---

# Agent Instructions: 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:

```
GET https://unity.zoeimmersive.com/adding-interactivity/interactive-objects/structure-of-ios.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
