# Torne qualquer item smart

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

Os smart items são apenas itens normais com um **Action** e/ou **Trigger** component. Você pode adicionar esses components a qualquer item na sua scene. Você também pode importar os seus próprios modelos 3D personalizados e adicionar o mesmo a eles.

Para adicionar components a um item, clique no **Ícone de mais** ao lado do nome do item e selecione qual component adicionar na lista dropdown.

![](/files/c07055b5d0f49ff93d567390dde9a43be353f582)

Isso permite uma enorme quantidade de possibilidades criativas. Transforme uma vela numa alavanca que abre uma passagem secreta atrás de uma estante, reproduza sons misteriosos de dentro de um poço, transforme diamantes em itens coletáveis que encolhem até 0 quando clicados. Há imensas formas imaginativas de combinar estas mecânicas!

## Interatividade

Você pode fazer com que um item reaja a diferentes ações do player.

{% hint style="info" %}
**💡 Dica**: Quando um player interage com um item, você deve mostrar algum tipo de feedback para tornar essa interação clara. Se o model não tiver animações, considere pelo menos reproduzir um som. Em alguns casos, pode funcionar fazer o item realizar um pequeno tween de escala e depois voltar à sua escala original, como forma de feedback.
{% endhint %}

Adicione um **Trigger** component, para detetar diferentes ações do player:

* **Pointer events**: Quando o player clica ou pressiona uma tecla enquanto aponta o cursor para o item.
* **Global button events** Quando o player pressiona uma tecla, em qualquer ponto da scene.
* **Player proximity**: Quando o player entra na posição do item.

O **Trigger** component pode ser configurado para estar ciente de qualquer um destes tipos de triggers. Sempre que um trigger acontece, ele pode chamar Actions do seu próprio **Actions** component, ou dos **Actions** components de outros itens na scene. Veja [Smart Items - Advanced](/creator/content-creator-pt/scene-editor/interatividade/smart-items-advanced.md).

{% hint style="info" %}
**💡 Dica**: Você também pode combinar estes triggers com [lógica condicional](/creator/content-creator-pt/scene-editor/interatividade/states-and-conditions.md), para que as actions não sejam chamadas toda vez que o trigger acontece, apenas se as condições forem verdadeiras.

Por exemplo, você poderia adicionar um **Pointer Events** trigger a uma porta, para que ela abra quando clicada, mas incluir lógica condicional para que ela só abra se estiver destrancada.
{% endhint %}

### Pointer events

Adicione um **Trigger** component com **On Click** ou **On Input Action** Trigger events.

* **On Click** reage sempre que o player clica no botão esquerdo do rato enquanto aponta para o item.
* **On Input Action** reage sempre que o player pressiona o Primary Button (E) enquanto aponta para o item.

![](/files/42fa8bf6904babc6e79e962d85dead347adea316)

**Colliders**

É importante que, para um item ser clicável, ele deve ter um **Collider**. Caso contrário, os seus cliques vão atravessar o model e tentar interagir com o que estiver atrás. Os modelos 3D nos Asset Packs padrão devem todos ter colliders, mas se criar o seu próprio model ou o obtiver de outro lugar, poderá descobrir que lhe falta um.

Se o seu model não tiver colliders, qualquer uma das opções seguintes deverá resolver isso:

* Adicione um **Mesh Collider** component. Isto criará um collider com um [forma primitiva](/creator/content-creator-pt/scenes-sdk7/essenciais-de-conteudo-3d/shape-components.md#primitive-shapes) (cubo, plano, cilindro, cubo, esfera).
* Altere as properties do **Collisions** section no **GLTF** component. O **Visible layer** deve ser atribuído a **Pointer**.
* Edite o modelo 3D no Blender para incluir uma geometria collider invisível (qualquer mesh com um nome que termine em `_collider`). Veja [colliders](https://github.com/decentraland/docs/blob/main/creator/scene-editor/3d-modeling/colliders.md).

{% hint style="info" %}
**💡 Dica**: Se usou o **Mesh Renderer** component para dar ao seu model uma forma primitiva, isso por si só não lhe dará um collider. Também precisa de lhe atribuir um **Mesh Collider** componente.
{% endhint %}

**Personalizar pointer events**

Pode substituir as definições padrão usadas quando um item tem um **On Click** ou um **On Input Action** Trigger Action.

* **Hover text**: Altere a dica que os players veem junto ao cursor quando passam o cursor sobre o item. Isto pode ser muito útil para clarificar o que o seu item faz.
* **Distância máxima**: Quão longe o player pode estar ao interagir com o seu item.
* **Mostrar feedback**: Se estiver desmarcado, o item não tem hover-hint quando o player passa o cursor sobre ele.
* **Button**: Se estiver a usar o **On Input Action** Trigger Action, pode reatribuir o **Primary (E)** padrão para outra tecla. O hover-hint incluirá um ícone para esclarecer que tecla usar. Pode usar **Secondary (F)**, ou **Actions 3 a 6** (teclas numéricas 1 a 4).

### Global button events

Adicione um **Trigger** component com **On Global Click**, **On Global Primary** ou **On Global Secondary** Trigger events.

* **On Global Click** reage sempre que o player clica no botão esquerdo do rato, em qualquer ponto da scene.
* **On Global Primary** reage sempre que o player pressiona o Primary Button (E), em qualquer ponto da scene.
* **On Global Secondary** reage sempre que o player pressiona o Secondary Button (F), em qualquer ponto da scene.

{% hint style="info" %}
**💡 Dica**: Muitas vezes faz sentido combinar isto com [States and conditions](/creator/content-creator-pt/scene-editor/interatividade/states-and-conditions.md), para que os items só reajam ao evento do botão se o player estiver na room, ou se outra condição se aplicar.
{% endhint %}

### Player position

Adicione um **Trigger** component com **Player Enters Area**, **Player Leaves Area** Trigger events.

Isto reagirá quando o player entrar ou sair de uma area com o tamanho padrão de 1x1x1, posicionada no centro do item.

{% hint style="info" %}
**💡 Dica**: Muitas vezes é melhor usar o [**Trigger Area**](/creator/content-creator-pt/scene-editor/interatividade/smart-items.md#trigger-areas) smart item em vez disso, já que as dimensões deste item podem ser claramente visualizadas no Scene Editor.
{% endhint %}

## Veja também

* [Smart items - Basics](/creator/content-creator-pt/scene-editor/interatividade/smart-items.md)
* [Smart Items - Advanced](/creator/content-creator-pt/scene-editor/interatividade/smart-items-advanced.md)
* [States and conditions](/creator/content-creator-pt/scene-editor/interatividade/states-and-conditions.md)
* [Combine com código](/creator/content-creator-pt/scene-editor/expandir-com-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-pt/scene-editor/interatividade/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.
