> 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-pt/scene-editor/interatividade/make-any-item-smart.md).

# Tornar qualquer item smart

Configure qualquer item para se comportar como um smart item.

{% 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 **Plus Icon** ao lado do nome do item e selecione qual component adicionar na lista dropdown.

![O menu de adicionar component abre numa Entity, listando components agrupados em 3D Content e Interaction, incluindo Actions e Triggers.](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-6a35142910f0343c27340673c61d75ed5f75f05a%2Fadd-component.png?alt=media)

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

## Interatividade

Você pode fazer um item reagir a diferentes ações do jogador.

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

Adicione um **Trigger** component, para detectar diferentes ações do jogador:

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

O **Trigger** component pode ser configurado para reconhecer 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 acontecer, apenas se as condições forem verdadeiras.

Por exemplo, você poderia adicionar um **Pointer Events** trigger a uma porta, para que ela se abra quando clicada, mas inclua lógica condicional para que ela só se 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 jogador clica com o botão esquerdo do mouse enquanto aponta para o item.
* **On Input Action** reage sempre que o jogador pressiona o Primary Button (E) enquanto aponta para o item.

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

**Colliders**

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

Se o seu modelo estiver sem colliders, qualquer uma das seguintes opções deve resolver:

* Adicione um **Mesh Collider** component. Isto criará um collider com uma [forma primitiva](/creator/content-creator-pt/scenes-sdk7/fundamentos-de-conteudo-3d/shape-components.md#primitive-shapes) (cube, plane, cylinder, sphere).
* Altere as propriedades da **Collisions** seção no **GLTF** component. O **Visible layer** deve ser atribuída a **Pointer**.
* Edite o modelo 3D no Blender para incluir uma geometria de collider invisível (qualquer mesh com um nome que termine em `_collider`). Veja [colliders](/creator/content-creator-pt/modelagem-3d-e-animacoes/colliders.md).

{% hint style="info" %}
**💡 Dica**: Se usou o **Mesh Renderer** component para dar ao seu modelo uma forma primitiva, isso por si só não lhe dará um collider. Você também deve atribuir-lhe um **Mesh Collider** component.
{% endhint %}

**Personalizar pointer events**

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

* **Texto de hover**: Altere a dica que os jogadores veem ao lado do cursor ao passar o mouse sobre o item. Isso pode ser muito útil para esclarecer o que o seu item faz.
* **Distância máxima**: Quão longe o jogador pode estar ao interagir com o seu item.
* **Mostrar feedback**: Se desmarcado, o item não terá dica de hover quando o jogador passar o cursor sobre ele.
* **Botão**: Se estiver a usar o **On Input Action** Trigger Action, pode reatribuir o **Primary (E)** para outra tecla. A dica de hover incluirá um ícone para esclarecer que tecla usar. Você 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** Eventos de Trigger.

* **On Global Click** reage sempre que o jogador clica com o botão esquerdo do mouse, em qualquer lugar da scene.
* **On Global Primary** reage sempre que o jogador pressiona o Primary Button (E), em qualquer lugar da scene.
* **On Global Secondary** reage sempre que o jogador pressiona o Secondary Button (F), em qualquer lugar da scene.

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

### Posição do jogador

Adicione um **Trigger** component com **Jogador Entra na Área**, **Jogador Sai da Área** Eventos de Trigger.

Isto reagirá quando o jogador entrar ou sair de uma área com 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, pois as dimensões deste item podem ser claramente visualizadas no Scene Editor.
{% endhint %}

## Veja também

* [Smart items - Básicos](/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 e condições](/creator/content-creator-pt/scene-editor/interatividade/states-and-conditions.md)
* [Combinar com código](/creator/content-creator-pt/scene-editor/estender-com-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-pt/scene-editor/interatividade/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.
