# Haz inteligente cualquier elemento

{% embed url="<https://www.youtube.com/watch?v=wnnEU8GCLjc>" %}

Los smart items son simplemente items regulares con un **Action** y/o **Trigger** component. Puedes añadir estos components a cualquier item de tu scene. También puedes importar tus propios modelos 3D personalizados y añadirles lo mismo.

Para añadir components a un item, haz clic en el **Plus Icon** junto al nombre del item, y selecciona qué component añadir de la lista desplegable.

![](/files/e5a434a629dfa50bb1da7f2a58d249099e9c23a2)

Esto permite una enorme cantidad de posibilidades creativas. Convierte una vela en una palanca que abre un pasaje secreto detrás de una estantería, reproduce sonidos misteriosos desde dentro de un pozo, convierte diamantes en items coleccionables que se reducen a 0 cuando se hace clic en ellos. ¡Hay muchísimas formas imaginativas de combinar estas mecánicas!

## Interactivity

Puedes hacer que un item reaccione a distintas acciones del player.

{% hint style="info" %}
**💡 Consejo**: Cuando un player interactúa con un item, deberías mostrar algún tipo de feedback para que esa interacción quede clara. Si el modelo no tiene ninguna animación, considera al menos reproducir un sonido. En algunos casos podría funcionar hacer que el item haga un pequeño tween en escala y luego vuelva a su escala original, como forma de feedback.
{% endhint %}

Agrega un **Trigger** component, para detectar distintas acciones del player:

* **Pointer events**: Cuando el player hace clic o pulsa una tecla mientras apunta con su cursor al item.
* **Global button events** Cuando el player pulsa una tecla, esté donde esté en la scene.
* **Player proximity**: Cuando el player entra en la posición del item.

El **Trigger** component puede configurarse para reconocer cualquiera de estos tipos de triggers. Cada vez que ocurre un trigger, puede llamar a Actions desde su propio **Actions** component, o desde los **Actions** components de otros items en la scene. Ver [Smart items - Advanced](/creator/content-creator-es/scene-editor/interactividad/smart-items-advanced.md).

{% hint style="info" %}
**💡 Consejo**: También puedes combinar estos triggers con [conditional logic](/creator/content-creator-es/scene-editor/interactividad/states-and-conditions.md), de modo que las actions no se llamen cada vez que ocurra el trigger, solo si las conditions son true.

Por ejemplo, podrías añadir un **Pointer Events** trigger a una puerta, de modo que se abra al hacer clic, pero incluir conditional logic para que solo se abra si está desbloqueada.
{% endhint %}

### Pointer events

Agrega un **Trigger** component con **On Click** o **On Input Action** Trigger events.

* **On Click** reacciona cada vez que el player hace clic con el botón izquierdo del mouse mientras apunta al item.
* **On Input Action** reacciona cada vez que el player pulsa el Primary Button (E) mientras apunta al item.

![](/files/2ff8afcc714d713dc136339f41641d4c8e7f99e5)

**Colliders**

Es importante que, para que un item sea clicable, debe tener un **Collider**. De lo contrario, tus clics atravesarán el modelo y tratarán de interactuar con lo que haya detrás. Los modelos 3D de los Asset Packs predeterminados deberían tener todos colliders, pero si creas tu propio modelo o lo obtienes de otro sitio, puede que no tenga uno.

Si a tu modelo le faltan colliders, cualquiera de las siguientes opciones debería solucionarlo:

* Agrega un **Mesh Collider** component. Esto creará un collider con una [forma primitiva](/creator/content-creator-es/scenes-sdk7/esenciales-de-contenido-3d/shape-components.md#primitive-shapes) (cube, plane, cylinder, cube, sphere).
* Cambia las propiedades del **Collisions** sección del **GLTF** component. El **Visible layer** debería asignarse a **Pointer**.
* Edita el modelo 3D en Blender para incluir una geometría de collider invisible (cualquier mesh cuyo nombre termine en `_collider`). Ver [colliders](https://github.com/decentraland/docs/blob/main/creator/scene-editor/3d-modeling/colliders.md).

{% hint style="info" %}
**💡 Consejo**: Si usaste el **Mesh Renderer** component para darle a tu modelo una forma primitiva, eso por sí solo no le dará un collider. También debes asignarle un **Mesh Collider** componente.
{% endhint %}

**Customize pointer events**

Puedes sobrescribir los ajustes predeterminados que se usan cuando un item tiene un **On Click** o un **On Input Action** Trigger Action.

* **Texto al pasar el cursor**: Cambia la hint que los players ven junto al cursor cuando pasan el mouse sobre el item. Esto puede ser muy útil para aclarar qué hace tu item.
* **Max distance**: A qué distancia máxima puede estar el player al interactuar con tu item.
* **Show feedback**: Si está desmarcado, el item no tiene hover-hint cuando el player pasa el cursor sobre él.
* **Button**: Si usas el **On Input Action** Trigger Action, puedes reasignar el valor predeterminado **Primary (E)** a otra tecla. El hover-hint incluirá un icono para aclarar qué tecla usar. Puedes usar **Secondary (F)**, o **Actions 3 to 6** (teclas numéricas 1 a 4).

### Global button events

Agrega un **Trigger** component con **On Global Click**, **On Global Primary** o **On Global Secondary** Triggers events.

* **On Global Click** reacciona cada vez que el player hace clic con el botón izquierdo del mouse, en cualquier parte de la scene.
* **On Global Primary** reacciona cada vez que el player pulsa el Primary Button (E), en cualquier parte de la scene.
* **On Global Secondary** reacciona cada vez que el player pulsa el Secondary Button (F), en cualquier parte de la scene.

{% hint style="info" %}
**💡 Consejo**: A menudo tiene sentido combinar esto con [Estados y condiciones](/creator/content-creator-es/scene-editor/interactividad/states-and-conditions.md), para que los items solo reaccionen al button event si el player está en la room, o si se cumple alguna otra condition.
{% endhint %}

### Player position

Agrega un **Trigger** component con **Player Enters Area**, **Player Leaves Area** Triggers events.

Esto reaccionará cuando el player entre o salga de un área de tamaño predeterminado 1x1x1, situada en el centro del item.

{% hint style="info" %}
**💡 Consejo**: A menudo es mejor usar el [**Trigger Area**](/creator/content-creator-es/scene-editor/interactividad/smart-items.md#trigger-areas) smart item en su lugar, ya que las dimensiones de este item pueden visualizarse claramente en el Scene Editor.
{% endhint %}

## Ver también

* [Smart items - Basics](/creator/content-creator-es/scene-editor/interactividad/smart-items.md)
* [Smart items - Advanced](/creator/content-creator-es/scene-editor/interactividad/smart-items-advanced.md)
* [Estados y condiciones](/creator/content-creator-es/scene-editor/interactividad/states-and-conditions.md)
* [Combinar con código](/creator/content-creator-es/scene-editor/extender-con-codigo/overview.md)


---

# 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://docs.decentraland.org/creator/content-creator-es/scene-editor/interactividad/make-any-item-smart.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.
