Entities e Components

Entenda como os Components de um item funcionam

Selecione um item clicando nele no canvas ou na entity tree. Você então verá seus components exibidos no properties panel, à direita da tela. Itens diferentes têm components diferentes, e cada um exibe configurações específicas.



A maioria dos itens não interativos tem os seguintes components:

  • Transform: Define a position, rotation e scale do item. Se o item for um child de outro item no Entity Tree, esses valores são relativos aos do parent.

  • GLTF: Qual modelo 3D carregar. Inclui o local path para o file desse modelo 3D. Também inclui algumas properties para configurar colliders no modelo.

Os itens na sua scene são todos Entities. Tudo em uma scene é uma Entity; elas são os blocos de construção básicos das scenes. Itens são Entities que têm pelo menos uma position e uma visible shape.

Adicionar components

Para adicionar Components a qualquer Entity, clique no + símbolo na parte superior da aba de properties e selecione o Component na lista. Veja Torne qualquer item smart



Você pode deletar qualquer Component de uma Entity clicando no ícone de três pontos à direita dele e selecionando Delete Component.

Criar uma entity do zero

Para criar uma Entity novinha em folha, clique com o botão direito no root Scene Entity na Entity tree, ou em qualquer outra Entity, e selecione Add Child



Isso cria uma Entity vazia com apenas um Transform Component. A nova entity é um child da parent entity em que você clicou. Você então pode adicionar qualquer outro Components que quiser para moldá-la em qualquer coisa que desejar.

Components disponíveis

Os seguintes Components podem ser adicionados a qualquer Entity via a UI do Scene Editor:

  • Mesh Renderer: Dá à Entity uma visible shape baseada em uma primitive shape (cube, plane, cylinder, cone ou sphere).

  • Mesh Collider: Dá à Entity uma collider geometry invisível. Isso pode impedir que o player caminhe através do item e/ou pode torná-lo clicável. Veja collider.

  • Material: Define a color, texture e outras properties de uma Entity que tem um Mesh Renderer Component. Veja materials.

    {% hint style="warning" %} 📔 Nota: O item deve ter um Mesh Renderer Component. Isso não afeta itens com uma GLTF visible shape. {% endhint %}

  • Visibility: Define se uma Entity está invisível.

  • Light Source: Adiciona uma luz à Entity.

  • Swap Material: Troca o material de uma Entity que tem um GLTF component. Se o modelo 3D tiver múltiplas meshes, você pode trocar o material de cada mesh individualmente.

  • Audio Source: Reproduz um som de um arquivo de áudio na localização da Entity. Veja Sounds.

  • Text Shape: Exibe texto no espaço 3D. Veja Text.

  • Pointer Events: Marca uma Entity como clicável, exibindo uma hover-hint.

circle-exclamation
  • Multiplayer: Compartilha quaisquer alterações que aconteçam com a Entity para que todos os players na scene também as vejam. Pode ser configurado para compartilhar alterações apenas em certos components. Veja Serverless Multiplayer para mais detalhes.

circle-exclamation

Smart items

Smart items também podem incluir components especiais que controlam a interactivity da Entity. Esses geralmente são:

  • Actions: Lista todas as ações possíveis que o item pode executar.

  • Triggers: Determina quando as ações do component Actions são executadas.

  • States: Mantém o controle do current state do item. O state pode ser usado para lógica condicional, para acionar certas ações apenas se o item estiver em um determinado state.

  • Counter: Mantém o controle de um counter. O counter pode ser usado para lógica condicional, para acionar certas ações apenas se o valor do counter for igual/maior/menor que um valor dado.

Consulte Smart items avançados para mais detalhes.

Sobre entities e components

Tudo em uma scene é uma Entity. Todos os itens e smart items na scene são Entities.

Todas as características de uma Entity são determinadas por seus components. Eles definem o que a Entity é, onde ela está, como soa e como se comporta. Por exemplo, um Transform component armazena as coordinates, rotation e scale da Entity. Um MeshRenderer component dá à Entity uma visible shape (como um cube ou uma sphere), e um Material component dá à Entity uma color ou texture.

Os valores dos components podem mudar ao longo do tempo. No Scene Editor, você configura os valores iniciais desses components. Mas, quando sua scene estiver em execução, as ações do player ou a passagem do tempo podem alterar esses valores.

Por exemplo, um Smart Item de plataforma em movimento tem uma position inicial que você define por meio do seu Transform component, mas depois que as ações desse item fazem com que ele se mova, seu Transform terá valores diferentes.

Consulte Entities and components para uma análise aprofundada desse conceito e de como eles são usados pelas scenes do Decentraland.

Atualizado