> For the complete documentation index, see [llms.txt](https://docs.decentraland.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.decentraland.org/creator/content-creator-es/scene-editor/interactividad/make-any-item-smart.md).

# Haz que cualquier item sea smart

Configura cualquier item para que se comporte como un smart item.

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

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

Para añadir components a un objeto haz clic en el **icono +** junto al nombre del objeto y selecciona qué component añadir de la lista desplegable.

![El menú para añadir components se abre en una entity y muestra components agrupados en 3D Content e Interaction, incluidos Actions y Triggers.](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-6a35142910f0343c27340673c61d75ed5f75f05a%2Fadd-component.png?alt=media)

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 el interior de un pozo, convierte diamantes en objetos coleccionables que se reducen a 0 cuando se hace clic en ellos. ¡Hay muchísimas maneras imaginativas de combinar estas mecánicas!

## Interactividad

Puedes hacer que un objeto reaccione a distintas acciones del jugador.

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

Añade un **Trigger** component, para detectar distintas acciones del jugador:

* **Pointer events**: Cuando el jugador hace clic o pulsa una tecla mientras apunta con el cursor al objeto.
* **Eventos globales de botón** Cuando el jugador pulsa una tecla, esté donde esté en la escena.
* **Proximidad del jugador**: Cuando el jugador entra en la posición del objeto.

El **Trigger** component puede configurarse para estar al tanto de cualquiera de estos tipos de triggers. Cada vez que ocurre un trigger, puede llamar Actions desde su propio **Actions** component, o desde los **Actions** components de otros objetos en la escena. 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 [lógica condicional](/creator/content-creator-es/scene-editor/interactividad/states-and-conditions.md), para que las Actions no se llamen cada vez que ocurre el trigger, solo si las condiciones son verdaderas.

Por ejemplo, podrías añadir un **Pointer Events** trigger a una puerta, para que se abra al hacer clic, pero incluye lógica condicional para que solo se abra si está desbloqueada.
{% endhint %}

### Pointer events

Añade un **Trigger** component con **On Click** o **On Input Action** Dispara eventos.

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

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-89527969929c803b930910be068d3fdc569a36d6%2Fon_click.png?alt=media)

**Colliders**

Es importante que, para que un objeto se pueda hacer clic, 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 importas desde otro sitio, puede que veas que le falta uno.

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

* Añade un **Mesh Collider** component. Esto creará un collider con una [forma primitiva](/creator/content-creator-es/scenes-sdk7/conceptos-basicos-del-contenido-3d/shape-components.md#primitive-shapes) (cubo, plano, cilindro, esfera).
* Cambia las propiedades de la **Collisions** sección del **GLTF** component. La **Visible layer** debe asignarse a **Pointer**.
* Edita el modelo 3D en Blender para incluir una geometría collider invisible (cualquier mesh con un nombre que termine en `_collider`). Ver [colliders](/creator/content-creator-es/modelado-3d-y-animaciones/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** component.
{% endhint %}

**Personaliza los Pointer events**

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

* **Hover text**: Cambia la pista que los jugadores ven junto al cursor al pasar sobre el objeto. Esto puede ser muy útil para aclarar qué hace tu objeto.
* **Distancia máxima**: A qué distancia puede estar el jugador al interactuar con tu objeto.
* **Mostrar feedback**: Si no está marcado, el objeto no tiene hover-hint cuando el jugador pasa el cursor sobre él.
* **Botón**: Si usas el **On Input Action** Trigger Action, puedes reasignar el **Primary (E)** a otra tecla. El hover-hint incluirá un icono para aclarar qué tecla usar. Puedes usar **Secondary (F)**, o **Actions 3 a 6** (teclas numéricas 1 a 4).

### Eventos globales de botón

Añade un **Trigger** component con **On Global Click**, **On Global Primary** o **On Global Secondary** Dispara eventos.

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

{% 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 objetos solo reaccionen al evento del botón si el jugador está en la habitación, o bajo alguna otra condición.
{% endhint %}

### Posición del jugador

Añade un **Trigger** component con **El jugador entra en el área**, **El jugador sale del área** Dispara eventos.

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

{% 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 objeto se pueden visualizar claramente en el Scene Editor.
{% endhint %}

## Ver también

* [Smart items - Conceptos básicos](/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)
* [Combina con código](/creator/content-creator-es/scene-editor/extender-con-codigo/overview.md)


---

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