> 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/smart-items-advanced.md).

# Smart Items - Avançado

Use smart items na sua scene para adicionar interatividade.

A maioria dos smart items tem um módulo básico em que você pode configurar apenas as opções mais comuns de forma simples, mas você pode rolar para baixo além do **Avançado** marcador para personalizar quase qualquer coisa sobre como o item se comporta.

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

O seguinte item tem um componente Transform e um módulo básico que expõe apenas os campos básicos para configurar um botão. Mas, se você rolar para baixo além do **Avançado** marcador, você encontrará todas as configurações disponíveis.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-f2e51018feb637e8aac6ec99a7998f64f416a0bb%2Fadvanced-settings-smart-item.png?alt=media\&token=665dc7bf-5758-4853-9c0c-443b89bf5029)

{% hint style="info" %}
**📔 Observação**: A maioria das configurações do módulo básico também está disponível nos components mais abaixo. As alterações feitas no módulo básico são refletidas nos components mais abaixo e vice-versa, exceto em alguns casos em que as configurações básicas são uma abstração de várias configurações mais abaixo. Nesses casos, alterar as configurações avançadas para valores que não são suportados pelo módulo básico fará com que o campo no módulo básico seja marcado como undefined.
{% endhint %}

## Configuração avançada

As propriedades são agrupadas em [**components**](/creator/content-creator-pt/scenes-sdk7/arquitetura/entities-components.md). Diferentes smart items podem ter components diferentes, dependendo da sua funcionalidade.

O comportamento da maioria dos itens é controlado por:

* [**Actions**](#actions): O component Actions define coisas que o item pode fazer. Por exemplo, reproduzir um som, reproduzir uma animação, mover para cima ou ficar invisível.
* [**Triggers**](#triggers): O component Triggers atribui quais eventos fazem essas actions acontecerem. Por exemplo, quando o jogador clica no item, quando o jogador entra em uma área ou quando a scene é carregada pela primeira vez.

Por exemplo, em um smart item de porta, o **Actions** component inclui as ações "Open" e "Close". O **Triggers** component nesse item inclui um **On Click** trigger que ativa a ação "Open" quando a porta é clicada pelo jogador.

Os triggers de um smart item podem ativar actions em qualquer smart item da scene, não apenas nesse mesmo smart item. Por exemplo, um smart item de botão pode ter um **Triggers** component que ativa a action "move up" definida no **Actions** component de uma plataforma flutuante.

Os triggers também podem acontecer condicionalmente. Por exemplo, smart items de porta incluem dois **On Click** triggers em seu component Triggers: um abre a porta se ela estiver fechada, o outro fecha a porta se ela estiver aberta. Para mais detalhes, veja [Estados e lógica condicional](/creator/content-creator-pt/scene-editor/interatividade/states-and-conditions.md).

## Interações entre itens

Para fazer os itens interagirem entre si:

* Um item precisa ter pelo menos uma action definida em um [Actions](#actions) component.
* O outro item precisa de um trigger no [Triggers](#triggers) component que aponta para essa action.

Por exemplo, para fazer um botão abrir uma porta:

1. Adicione qualquer smart item de botão, abra seu **Triggers** component. Ele tem um evento trigger padrão que reproduz um som e uma animação para o próprio botão.
2. Clique no **+** sinal de **Assigned Actions**, para adicionar uma terceira action nesse mesmo evento trigger.
3. Selecione o smart item da porta no primeiro dropdown.
4. No segundo dropdown, selecione a action "Open".

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-110156bc3c8fa17336e61490402e1cb19d83ff47%2Fbutton-to-door.png?alt=media\&token=1e558a4c-9887-435c-96c7-866d51a89cbd)

{% hint style="info" %}
**💡 Dica**: Em vez disso, você pode criar um novo Trigger event que trata apenas da action da porta. Ambos os trigger events são chamados toda vez que o botão é clicado.

<img src="https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-30d3ef36d5482564fd8b67854fdd9e9ab2c16cc7%2Fbutton-to-door2.png?alt=media" alt="" data-size="original">
{% endhint %}

Qualquer item pode acionar qualquer action de qualquer outro item, desde que a action esteja definida. Veja [Triggers](#triggers) para mais maneiras pelas quais uma action pode ser acionada.

Você pode usar [states e lógica condicional](/creator/content-creator-pt/scene-editor/interatividade/states-and-conditions.md) para acionar uma action somente se uma condition for atendida. A condition pode até verificar o state de um terceiro smart item. Por exemplo, um botão só abre a porta se o smart item personalizado "power generator" estiver com seu state definido como "On".

## Actions

O **Actions** O component Actions lista actions que o item pode executar. Cada smart item inclui um conjunto de actions predefinidas. Você pode personalizar actions existentes ou adicionar novas. Os seguintes tipos de actions estão disponíveis:

* **Reproduzir animação**: Reproduz uma animação no modelo 3D do item. Veja [Sobre a reprodução de animações](#about-playing-animations)
* **Parar animação**: Interrompe todas as animações sendo reproduzidas pelo modelo 3D do item.
* **Reproduzir som**: Reproduz um som de um arquivo, na localização do item. Veja [Sobre a reprodução de sons](#about-playing-sounds)
* **Parar som**: Interrompe todos os sons reproduzidos pelo item.
* **Iniciar Tween**: Faz uma alteração gradual na posição, rotação ou escala ao longo de um período determinado. Veja [Mover, girar ou escalar](#moving-rotating-or-scaling).
* **Definir visibilidade**: Torna o item visível ou invisível.
* **Anexar ao jogador**: Define o item como filho do avatar do jogador. Por exemplo, para segurá-lo na mão ou acima da cabeça.
* **Desanexar do jogador**: Desanexa o item do avatar do jogador.
* **Abrir link**: Abre um link para um site externo em uma aba do navegador. Os jogadores são perguntados se confiam no domínio antes de ele ser aberto.

{% hint style="info" %}
**📔 Observação**: Esta action só pode acontecer como resultado de clicar em um item. Não pode ser acionada ao entrar em uma Trigger Area.
{% endhint %}

* **Mover jogador**: Altera a posição do jogador para um conjunto de coordenadas locais dentro da scene. Só é possível mover o jogador dentro da mesma scene.
* **Teleportar jogador**: Teleporta um jogador para outro local em Decentraland. Use o **Teleport Mode** menu suspenso para enviá-lo **Para coordenadas** de outra scene em Genesis City, ou **Para World**, indicando o nome de um World. Os jogadores aparecerão no spawn-point da scene de destino.
* **Reproduzir Emote**: Faz o avatar do jogador executar uma das animações padrão do avatar (por exemplo: acenar ou aplaudir).
* **Reproduzir Emote personalizado**: Faz o avatar do jogador executar uma animação personalizada, a partir de um arquivo enviado para a scene.
* **Mostrar texto**: Exibe texto na UI da tela, para ser ocultado após alguns segundos. Ideal para dicas, falas de diálogo, notificações etc.
* **Ocultar texto**: Oculta qualquer texto da UI que possa estar sendo exibido no momento.
* **Atraso de início**: Atrasa outra action do mesmo item por quantos segundos forem necessários.
* **Parar atraso**: Cancela quaisquer ações atrasadas no item.
* **Iniciar loop**: Reproduz novamente uma action do mesmo item de forma recorrente em um intervalo determinado.
* **Parar loop**: Cancela quaisquer actions em loop no item.
* **Reproduzir vídeo**: Reproduz um vídeo como um material em uma forma primitiva.
* **Parar vídeo**: Para quaisquer vídeos sendo reproduzidos no momento.
* **Reproduzir stream de áudio**: Reproduz um stream de áudio.
* **Parar stream de áudio**: Para quaisquer streams de áudio que estejam sendo reproduzidos no momento.
* **Clonar**: Duplica um item na posição designada.
* **Spawn Entity**: Cria uma nova cópia de um item na scene, em uma posição relativa ao item que executa a action. O item a ser spawnado não precisa estar colocado na scene. Veja [Sobre a criação de entities](#about-spawning-entities).
* **Remover**: Exclui um item da scene.
* **Mostrar imagem**: Exibe uma imagem na UI, potencialmente por um período limitado. Ela também pode incluir legenda.
* **Ocultar imagem**: Oculta qualquer imagem atualmente exibida na UI por meio da action Mostrar imagem.
* **Dano**: Reduz a saúde de qualquer healthbar que estiver por perto. A *Layer* property pode determinar se ela age apenas nas healthbars do jogador ou em outros itens.
* **Mover jogador para cá**: Altera a posição do jogador para a posição deste item.
* **Colocar no jogador**: Altera a posição do item para a do jogador.
* **Girar como o jogador**: Altera a rotação do item para a do jogador.
* **Colocar na câmera**: Altera a posição do item para a da câmera.
* **Girar como a câmera**: Altera a rotação do item para a da câmera.
* **Definir posição**: Altera a posição do item para uma posição específica. Ela pode ser absoluta ou relativa à posição atual.
* **Definir rotação**: Altera a rotação do item para uma rotação específica. Ela pode ser absoluta ou relativa à rotação atual.
* **Definir escala**: Altera a escala do item para uma escala específica. Ela pode ser absoluta ou relativa à escala atual.
* **Seguir jogador**: Começa a se mover e girar na direção da posição do jogador. Ignora quaisquer obstáculos no caminho. Você pode definir a velocidade e fazer com que ele se mova apenas em certos eixos. A Distância mínima determina quão perto ele chegará do jogador.
* **Parar de seguir jogador**: Interrompe a action Seguir jogador.
* **Ação aleatória**: Uma das actions listadas aqui será reproduzida aleatoriamente com igual probabilidade cada vez que a ação aleatória for chamada. Você pode listar quaisquer actions que pertençam ao item.
* **Ações em lote**: Todas as actions listadas aqui serão reproduzidas simultaneamente cada vez que a ação em lote for chamada. Você pode listar quaisquer actions que pertençam ao item.
* **Curar jogador**: Restaura a saúde da barra de saúde do jogador.
* **Virar jogador para o item**: Faz o avatar do jogador virar para encarar o item.
* **Congelar jogador**: Impede o jogador de se mover, pular ou realizar emotes.
* **Descongelar jogador**: Restaura a capacidade do jogador de se mover após uma action Congelar jogador.
* **Luzes ligadas**: Liga a **Light Source** component.
* **Luzes desligadas**: Desliga a **Light Source** component.
* **Modificar luzes**: Altera propriedades do **Light Source** component do item, como sua cor ou intensidade.
* **Selecionar câmera**: Troca a visão do jogador para uma **Virtual Camera**, seja neste item ou em outra entity.
* **Alterar texto**: Altera o texto de um item com um **Text Shape** component. Também pode alterar o tamanho da fonte e a cor.
* **Parar Tween**: Interrompe qualquer movimento de tween atualmente em andamento no item.
* **Deslizar textura**: Desliza continuamente a texture no material do item em uma direção determinada, para efeitos como água corrente ou esteiras transportadoras.
* **Alterar colisões**: Habilita ou desabilita os colliders do item, tanto para física quanto para pointer events.
* **Alterar skybox**: Altera o skybox da scene para um horário fixo do dia, expresso em segundos desde a meia-noite.
* **Redefinir skybox**: Restaura o skybox da scene para suas configurações padrão.
* **Registrar no Console**: Imprime uma mensagem no Console, útil para debugging durante o desenvolvimento da scene.
* **Delete**: Remove o item e todos os seus children da scene.

Veja [states e lógica condicional](/creator/content-creator-pt/scene-editor/interatividade/states-and-conditions.md) para aprender sobre outras actions relacionadas a condições lógicas, como **Definir state** e as actions de contador.

O **Actions** component define actions possíveis, mas elas não fazem nada na scene a menos que sejam acionadas. Actions são ativadas por um [trigger](#triggers), seja do mesmo smart item ou de outro.

Para adicionar uma nova action a um item, clique no **botão Add New Action** na parte inferior do component Action. Em seguida, dê um nome à action, selecione um type e preencha quaisquer campos adicionais específicos para o type da action.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-61a40f62dff724b5f7b8b0cda353467230c84880%2Fnew-action.png?alt=media\&token=4c85e615-b847-440b-96b0-532a6814071a)

### Triggers

O **Triggers** component define eventos trigger; esses ativam actions quando um certo evento acontece. Os seguintes tipos de eventos trigger existem:

* **On Click**: Quando o jogador clica no item. Veja [Sobre trigger de clique](#about-click-triggers)
* **On Input Action**: Quando o jogador pressiona um botão de input enquanto aponta para o item.
* **On Global Click**: Quando o jogador clica no pointer em qualquer lugar, sem precisar apontar para o item.
* **On Global Primary**: Quando o jogador pressiona o botão Primary (E) em qualquer lugar.
* **On Global Secondary**: Quando o jogador pressiona o botão Secondary (F) em qualquer lugar.
* **Player Enters Area**: Quando o jogador entra em uma área. Veja [Trigger Area](/creator/content-creator-pt/scene-editor/interatividade/trigger-area.md)
* **Player Leaves Area**: Quando o jogador sai de uma área. Veja [Trigger Area](/creator/content-creator-pt/scene-editor/interatividade/trigger-area.md)
* **On Spawn**: Quando a scene começa, ou o item é spawned na scene. Veja [Trigger on spawn](#trigger-on-spawn)
* **On Delay**: Quando um **Atraso de início** action no item termina sua contagem regressiva.
* **On Loop**: Em cada iteração de uma **Iniciar loop** action no item.
* **On Clone**: Quando o item é clonado via uma **Clonar** action, a nova cópia dispara este trigger.
* **On Click Image**: Quando o jogador clica em uma imagem exibida por uma **Mostrar imagem** action.
* **On Damage**: Quando o item recebe damage de uma **Dano** action.
* **On Heal Player**: Quando o jogador é curado por uma **Curar jogador** action.
* **On Tick**: Em cada tick da scene, uma vez por frame. Use com cautela, pois as actions acionadas por ele são executadas com muita frequência.

Veja [states e lógica condicional](/creator/content-creator-pt/scene-editor/interatividade/states-and-conditions.md) para aprender sobre outros triggers relacionados a condições lógicas, como **On State Change**, **On Counter Change** e **On Tween End**.

Para adicionar um novo trigger, clique no **botão Add New Trigger Event** na parte inferior do component Trigger. Em seguida, selecione o tipo de trigger, a entity que você quer ativar e uma action dessa entity.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-2fc45edced2a86ac3f0b7f03057b38aec3d2f78b%2Fnew-trigger.png?alt=media\&token=4709b9ba-4088-4dbd-be35-f1180655a493)

{% hint style="info" %}
**📔 Observação**: Uma action precisa ser definida no [Actions](#actions) component da entity antes que você possa acioná-la. Triggers só podem afetar entities que tenham um component Actions.
{% endhint %}

## Sobre a reprodução de animações

Use uma action do type **Reproduzir animação** para executar uma animação no modelo 3D do smart item. A animação precisa já existir como parte do arquivo do modelo 3D. O **Selecionar animação** dropdown exibe uma lista de todas as animações disponíveis no modelo 3D.

O **Modo de reprodução** campo permite selecionar se uma animação deve ser reproduzida apenas uma vez ou se deve continuar em loop.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-0939df49ccfd7b60a07cf435a5244a13e5b30169%2Fplay-animation.png?alt=media\&token=f8bc7d76-87c8-49e2-b16a-11427ce865a1)

Depois que a action é criada, você pode ativá-la por meio do [Triggers](#triggers) component desse mesmo item ou de qualquer outro item.

Use o **Parar animação** action para interromper todas as animações do item, tanto em loop quanto sem loop.

{% hint style="info" %}
**💡 Dica**: Para verificar facilmente o conteúdo de um modelo 3D, ver quais animações ele inclui e como elas se parecem, uma boa ferramenta é o [Babylon Sandbox](https://sandbox.babylonjs.com/). Basta arrastar o arquivo do modelo 3D para a janela. Um dropdown com uma lista de suas animações deve aparecer na parte inferior.
{% endhint %}

Para saber mais sobre animações e como você pode criar as suas próprias como parte de um modelo 3D, veja [Animações](/creator/content-creator-pt/modelacao-3d-e-animacoes/animations.md).

## Sobre a reprodução de sons

Use uma action do type **Reproduzir som** para reproduzir um arquivo de som. Você pode reproduzir qualquer arquivo de som desde que ele tenha sido importado para o projeto da scene. O som é ouvido de forma posicional, a partir da localização do item, o que significa que ele soa mais alto se o jogador estiver mais perto.

{% hint style="info" %}
**💡 Dica**: Em vez de digitar o path do arquivo de som, você pode arrastá-lo para o **Path** field a partir do menu de navegação de arquivos na parte inferior do Scene Editor.
{% endhint %}

Use o **Modo de reprodução** campo para escolher se o som será reproduzido uma vez ou em loop contínuo.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-c1b29ddbf0c123f9f4993f8d0eb1cf18ef458ebd%2Fplay-sound.png?alt=media\&token=57469f2f-14dd-4989-a3b2-7104f2ce8b2c)

Depois que a action é criada, você pode ativá-la por meio do [Triggers](#triggers) component desse mesmo item ou de qualquer outro item.

Use o **Parar som** action para interromper todos os sons do item, tanto em loop quanto sem loop. Isso também interrompe sons do **AudioSource** component.

Para fazer com que um item reproduza sempre um som em loop, por exemplo para ambientação ou música, é mais fácil usar o **AudioSource** component, em vez de usar Actions e Triggers. Este component exige apenas que você forneça um path para um arquivo e marque as caixas **Iniciar reprodução** e **Loop**.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-6b18d4644fc30ae00402f4215163feae8e2ed4e5%2Faudiosource.png?alt=media\&token=3142795b-483a-4899-ac2a-82ad4280cbba)

{% hint style="info" %}
**📔 Observação**: Um smart item só pode reproduzir um som por vez. Chamar um segundo som interromperá quaisquer outros sons que estejam sendo reproduzidos no momento. Isso também se aplica aos sons do **AudioSource** component. Se você precisar que dois sons sejam reproduzidos ao mesmo tempo, considere adicionar uma entity invisível no mesmo local para conter um **Reproduzir som** action.
{% endhint %}

Veja [sons](/creator/content-creator-pt/scenes-sdk7/fundamentos-de-conteudo-3d/sounds.md) para saber mais sobre a reprodução de sons em Decentraland.

## Mover, girar ou escalar

Use um **Iniciar Tween** action para alterar a **position**, **scale**, ou **rotation**, do item ao longo de um período de tempo. Todas as actions começam a partir do estado original do item e mudam para um estado final ao longo de um período de tempo. **Iniciar Tween** Tweens de position podem ser relativos ou absolutos. Um tween de position absoluto move o item para uma posição fixa em relação à scene. O item se moverá de onde quer que esteja até essa posição. Se ele já estiver lá, não parecerá se mover. Um tween de position relativo move o item uma certa distância a partir de onde ele está agora; por exemplo, um tween para uma posição relativa de

move o item 1 metro para frente, na direção em que ele está atualmente voltado. Se você executar a action de tween uma segunda vez, o item se moverá mais um metro para frente. `1, 0, 0` movep o item 1 metro para frente, na direção em que ele está atualmente voltado. Se você executar a action de tween uma segunda vez, o item se moverá mais um metro para frente.

Tweens de rotation também podem ser relativos ou absolutos. Uma rotação relativa é adicionada à rotação atual do item. Um tween de rotation absoluto fará o item ficar voltado para uma direção específica, em relação à scene.

Use o **Duration** campo para definir quanto tempo todo o movimento deve levar, em segundos. Observe que o slider vai até 100 segundos, mas você também pode escrever um número maior manualmente se precisar.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-02dc2650178474b89c0aabbba8b12b917d09bfa1%2Ftweens.png?alt=media\&token=0fab61ce-88d8-442e-9b8c-2dd2062a2b01)

Depois que a action é criada, você pode ativá-la por meio do [Triggers](#triggers) component desse mesmo item ou de qualquer outro item.

Os tweens podem seguir diferentes **Curve Types** que afetam a taxa de mudança ao longo do tempo. Uma **linear** curve (padrão) significa que a velocidade da mudança é constante do início ao fim. Há muitas opções para escolher, que desenham curvas de formatos diferentes dependendo se o início e/ou o fim começam devagar, e o quanto. Uma **easeinexpo** curve começa devagar e termina rápido, aumentando a velocidade exponencialmente; por outro lado, uma **easeoutexpo** curve começa rápido e termina devagar.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-707c9c44d39111002ea3b1c4b3000a8ab4122d67%2Feasing-functions.jpeg?alt=media\&token=4b2f29bf-0661-4831-94ea-61b9ffece4ea)

{% hint style="info" %}
**💡 Dica**: Experimente diferentes curvas de movimento. As diferenças costumam ser sutis, mas interpretamos subconscientemente informações sobre como as coisas se movem, como peso, fricção ou até personalidade.
{% endhint %}

Use **On Tween End** eventos trigger no **Triggers** component para ativar uma action depois que um tween terminar. Use [states e lógica condicional](/creator/content-creator-pt/scene-editor/interatividade/states-and-conditions.md) para descrever um caminho em loop para uma plataforma flutuante, para que ela se mova continuamente entre dois locais.

Quando um item executa um tween, isso afeta tudo sobre o item. Por exemplo, se ele muda a scale, ele muda a scale do seu modelo 3D visível e também da geometria do collider invisível, o tamanho do texto etc. Se o item tiver quaisquer children (aninhados na entity tree à esquerda), essas child entities também são afetadas pelo tween.

{% hint style="info" %}
**📔 Observação**: Cada entity só pode executar um tween por vez. Por exemplo, você não pode fazer um item se mover para os lados e também girar ao mesmo tempo. Como alternativa, você pode usar entities pai. Por exemplo, você pode ter uma entity pai invisível que se move para os lados, com uma child visível que gira.
{% endhint %}

## Sobre a criação de entities

Use um **Spawn Entity** action para criar uma nova cópia de um item na scene enquanto ela está em execução. Diferente da **Clonar** action, o item que você spawnar não precisa estar colocado na scene primeiro.

### Tornar um item spawnable

Antes que um item possa ser spawnado, ele precisa estar disponível nos files do seu projeto. Para adicionar um item sem colocá-lo na scene:

1. No **Assets** painel, encontre o item no catálogo ou em seus **Custom Items**.
2. Clique com o botão direito no item e selecione **Add to filesystem**.

Isso copia o item para o seu projeto para que ele possa ser spawnado depois. Isso não adiciona nada visível à scene. O item então aparece no **Origem** dropdown de qualquer tipo **Spawn Entity** action.

### Configurar a ação

Um **Spawn Entity** a ação tem dois campos:

* **Origem**: O item a gerar. Escolha entre os itens adicionados aos ficheiros do seu projeto.
* **Posição**: As coordenadas X, Y e Z onde a nova cópia aparece, relativas ao item que está a executar a ação.

Se o item que gera for, ele próprio, um smart item, cada cópia gerada mantém as suas próprias actions e triggers a funcionar de forma independente.

{% hint style="info" %}
**💡 Dica**: Para gerar itens a partir de código, veja [Composites](/creator/content-creator-pt/scenes-sdk7/arquitetura/composites.md). Os itens adicionados aos ficheiros do seu projeto são armazenados como composites, o mesmo formato usado pela função spawn do SDK.
{% endhint %}

## Sobre trigger de clique

Para acionar uma action ao clicar num item, crie um **On Click** trigger. A action será ativada sempre que o player clicar na entity.

![](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\&token=8d37a0f4-9ec7-4bd6-8ced-ea2ffdc6c9e8)

Veja [Torne qualquer item num smart item](/creator/content-creator-pt/scene-editor/interatividade/make-any-item-smart.md#interactivity) para mais detalhes.

{% hint style="info" %}
**📔 Observação**: Ao usar modelos 3D personalizados, o modelo tem de ter uma geometria de collider invisível para poder ser clicável. Veja [colliders](/creator/content-creator-pt/scenes-sdk7/fundamentos-de-conteudo-3d/colliders.md#pointer-blocking).

Como alternativa, pode configurar o **GLTF** component do item, para que o seu **Visible Layer** de colisão esteja definida como **Pointer**.

Outra alternativa é adicionar um **Click Area** smart item, para desenhar um cubo que se sobrepõe ao item em que pretende clicar. O smart item Click Area é um [item invisível](#invisible-items).
{% endhint %}

## Trigger on spawn

Triggers do tipo **On Spawn** ativam uma ação quando a scene é carregada. Em vez de esperar que o player interaja com um item, a action executa-se imediatamente.

Por exemplo, use isto para fazer uma plataforma mover-se continuamente. Use um **On Spawn** trigger para ativar uma ação tween. Depois use **On State Change** triggers para a manter em movimento entre duas ou mais posições.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-e7d8cc0fa522e04b35c949d38884c9134c597d0f%2Fon_spawn.png?alt=media\&token=3fd8eac1-0915-4f16-baba-bf1b5d0589db)

## Multiplayer

Todos os smart items são multiplayer por defeito. Veja [Smart Items - Noções básicas](/creator/content-creator-pt/scene-editor/interatividade/smart-items.md) para mais detalhes.

Pode alterar ou ajustar este comportamento multiplayer para sincronizar apenas certos components do item.

No item's **Multiplayer** component, marque as caixas dos components que quer partilhar.

Por exemplo, uma porta partilha o seu `Animator` para que todos vejam as animações de abertura, o seu `AudioSource` para que todos oiçam o seu som, e o seu `State` para que todos acompanhem se está atualmente aberta ou fechada. A porta não partilha o seu `Visibility` component, porque a porta geralmente está sempre visível. Se incluir actions para ativar e desativar a sua visibilidade, talvez queira ter este component também assinalado, para que as alterações sejam sincronizadas entre todos os players.

## Itens invisíveis

Alguns itens não devem ser vistos pelo player, mas ficam visíveis enquanto edita a sua scene para serem mais fáceis de gerir. É o caso de itens como **Ambience**, **Trigger Area**, **Click Area**, etc.

No modo avançado, estes itens têm um **Visibility** component definido como invisível. Este component não afeta a visibilidade dos itens no Scene Editor, mas qualquer item definido como invisível não é visto pelos players ao executar uma preview.

## Ver também

* [Smart items - Noções básicas](/creator/content-creator-pt/scene-editor/interatividade/smart-items.md)
* [States e condições](/creator/content-creator-pt/scene-editor/interatividade/states-and-conditions.md)
* [Tornar qualquer item smart](/creator/content-creator-pt/scene-editor/interatividade/make-any-item-smart.md)
* [Combinar com código](/creator/content-creator-pt/scene-editor/expandir-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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.decentraland.org/creator/content-creator-pt/scene-editor/interatividade/smart-items-advanced.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
