Cave: Guia de Introdução
Cave: Guia de Introdução
Lesson 9 of 19 • 25 XP
Keep your place in this quest
Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.
Understanding Entities
Agora vamos entender o conceito de Entity no Cave. Entities são os objetos básicos dentro de uma cena do Cave.
Se uma cena é um nível, menu ou espaço de teste, as entities são as coisas que existem dentro desse espaço. Por exemplo, um jogador, inimigo, porta, luz, câmera, gatilho, botão de UI, fonte de som e pasta podem ser todos entities.
Nesta lição, você aprenderá sobre:
- Nomes.
- IDs.
- Estado ativo.
- Parenting.
- Pastas.
- Ordem na hierarquia.
- Tags e propriedades.
- Instâncias de template.
Esses detalhes podem parecer pequenos, mas fazem uma grande diferença quando uma cena cresce de alguns objetos para um nível real.
O que é uma Entity?
Uma Entity é um objeto em uma cena.
Uma entity pode representar:
- Um objeto 3D visível.
- Um auxílio invisível.
- Um gatilho de gameplay.
- Um elemento de UI.
- Uma fonte de som.
- Ou simplesmente uma pasta usada para organização.

Por exemplo, uma caixa é uma entity visível. Um ponto de spawn pode ser invisível durante o gameplay, mas ainda é uma entity pois marca onde algo deve acontecer.
O Cave mantém essa ideia simples: cenas são construídas a partir de entities.
Entities são contêineres de Componentes
Entities sozinhas não fazem muito, suas funcionalidades vêm dos componentes. Por exemplo:
| Entity | Componentes Que Pode Ter |
|---|---|
| Crate | Transform, Mesh, Rigid Body. |
| Player | Transform, Character, Camera, Python, Audio. |
| Door | Transform, Mesh, Rigid Body, Logic Bricks. |
| Torch | Transform, Mesh, Light, Audio. |
| Button | Transform, UI Element, Logic Bricks ou Python. |
| --- |
É por isso que as entities são flexíveis. Uma porta não é um tipo de objeto rígido e separado. É uma entity feita de partes: uma mesh para vê-la, colisão para bloquear o jogador e lógica para abrir ou fechar.
Quando você entende isso, construir objetos fica mais prático. Você para de perguntar "qual tipo de objeto eu preciso?" e começa a perguntar "quais componentes essa entity precisa?"
Nomes de Entity
Toda entity tem um nome. Você pode renomear uma entity pelo menu de edição rápida no Scene Graph ou pela aba Properties.
Vale mencionar que nomes são para humanos primeiro:
- Facilitam escanear o Scene Graph.
- Facilitam o debug.
- Facilitam conversar sobre objetos com colegas.
- Ajudam você a entender sua própria cena depois.
O Cave não exige que todo nome de entity seja único. Múltiplas entities podem compartilhar o mesmo nome, o que é útil para objetos repetidos como pedras, moedas, caixas ou inimigos.
No entanto, não trate o nome como o único identificador confiável para uma entity.
Bons nomes são simples e descritivos:
| Nome Fraco | Nome Melhor |
|---|---|
Mesh |
Wooden Crate |
Empty |
Player Start |
Light |
Cave Entrance Light |
Folder |
Enemy Group |
O objetivo não é deixar os nomes chiques. O objetivo é deixar a cena legível.
Nomes de entity também podem ser usados no código para referenciar uma entity específica da sua cena, mas já que você sabe que múltiplas entities podem ter o mesmo nome, também deve estar ciente que se você pegar uma entity pelo nome, e houver mais de uma com esse nome, isso pode levar a um comportamento indefinido porque não há garantia de qual entity a cena vai retornar para aquele nome. Ela retornará a primeira encontrada na busca. Então, se for importante pegar um objeto específico via código, como o jogador, certifique-se de dar a ele um nome único.
IDs de Entity
O Cave rastreia entities internamente com IDs únicos.
Normalmente você não precisa editar ou se preocupar com esses IDs. Eles existem para que o motor possa identificar entities de forma confiável, mesmo quando nomes se repetem. Na verdade, IDs únicos são imutáveis, o que significa que você não pode alterá-los. Eles são atribuídos automaticamente pelo motor.
Lembre-se disso:
| Coisa | Propósito |
|---|---|
| Nome | Ajuda você a ler a cena. |
| ID | Ajuda o Cave a rastrear o objeto internamente. |
Se dois inimigos forem ambos nomeados Enemy, o Cave ainda consegue diferenciá-los nos bastidores.
Estado Ativo da Entity
Entities podem estar ativas ou inativas.

No Scene Graph e na aba Properties, isso é mostrado com um controle de ativação no estilo olho.
| Estado | Significado |
|---|---|
| Ativo | A entity participa normalmente da cena. |
| Inativo | A entity permanece na cena, mas está desativada. |
Dependendo da entity e seus componentes, desativar pode afetar:
- Renderização.
- Física.
- Lógica.
- Atualizações em tempo de execução.
- Comportamento de componentes.
Uma entity desativada não terá nenhuma de suas atualizações de componente chamadas em momento algum, e no momento em que você desabilita uma entity, ela também chamará o método end do componente, e quando você ativá-la novamente, chamará o método start do componente.
Você pode assumir com segurança que uma entity desativada não contribuirá para cálculos de física, lógica, gatilhos, etc. A menos que você manualmente consulte essas entities na cena e ignore o fato de que estão desabilitadas, é claro.
A ideia prática é simples: inativo significa "mantido aqui, mas não participando atualmente."
Desativar vs Deletar
Desativar e deletar não são a mesma coisa.
| Ação | Resultado |
|---|---|
| Desativar | Mantém a entity na cena, mas a desliga. |
| Deletar | Remove a entity da cena. |
Desative uma entity quando você pode querer usá-la novamente depois. Deleite uma entity quando tiver certeza de que ela deve ser removida.
Para testes, desativar é geralmente mais seguro. Se um encontro com inimigos parecer muito difícil, desative alguns inimigos primeiro e teste o nível. Se a mudança parecer certa, você pode limpar a cena depois.
Parenting de Entities
Entities podem ser parentadas a outras entities.
Quando uma entity tem um pai, ela se torna parte da hierarquia daquele pai. Se você mover o pai, os filhos se movem com ele.
Parenting é útil para:
- Uma espada anexada a um personagem.
- Uma luz anexada a uma tocha.
- Uma câmera anexada a um veículo.
- Um grupo de props organizados em uma pasta.
- Elementos de UI agrupados sob um painel pai.
Parenting também afeta transforms. O transform de uma entity filha é avaliado relativamente à hierarquia do pai.
Esta é uma das maneiras mais simples de manter objetos relacionados juntos.
Entities Pastas
Entities do tipo pasta são usadas para organização. Elas são especialmente úteis quando sua cena começa a conter muitos objetos.
Por definição, o que faz uma entity ser uma pasta é basicamente a ausência de componentes nela, particularmente transform e um componente UI Element, porque se uma entity não tem transform no mundo e não tem um UI Element, provavelmente será usada como pasta. Mas isso é mais uma convenção de nomenclatura, então tenha isso em mente.
Grupos comuns de pastas incluem:
- Environment.
- Gameplay Triggers.
- Enemies.
- Props.
- Lighting.
- UI.
- Audio.
- Debug Helpers.
Pastas não são apenas para organização visual. Um Scene Graph limpo ajuda você a trabalhar mais rápido porque pode encontrar o objeto que precisa sem procurar em centenas de entities soltas.
Ordem na Hierarquia de Entities
A ordem das entities no Scene Graph importa para organização e, em alguns casos, pode importar para como as coisas são processadas ou exibidas.
Se você abrir uma pasta e ver a estrutura abaixo, ela é mais difícil de ler:
Crate
Player
Light
Enemy
Camera
Rock
Trigger
Mas esta é mais fácil:
Player
Camera
Lighting
Enemies
Environment
Gameplay Triggers
O objetivo não é deixar a hierarquia bonita, mas útil.
Se você conseguir abrir uma cena depois de uma semana afastado e entender imediatamente onde estão os objetos importantes, sua hierarquia está fazendo seu trabalho.
Nota importante aqui: devido a como o motor otimiza seu Scene Graph interno, a ordem das entities que estão no nível superior, ou seja, entities que não têm nenhum pai, será aleatória, mas entities filhas, as children, podem ter uma ordem específica, e você pode organizá-las clicando com o botão direito em cada entity individual na editor e movendo para cima, para baixo, para o topo ou para o final.
Propriedades e Tags de Entity
Entities podem armazenar propriedades personalizadas e tags.
| Recurso | Propósito |
|---|---|
| Propriedade | Armazena um valor editável. |
| Tag | Adiciona um rótulo usado para identificação ou agrupamento. |
Por exemplo, um inimigo poderia ter:
- Uma tag
Damageable. - Uma propriedade
health. - Uma propriedade
team. - Uma propriedade
patrolRadius.
Scripts e lógica podem usar esses dados para tomar decisões.
Um sistema de dano pode procurar entities com a tag Damageable. Um script de inimigo pode ler patrolRadius para decidir até onde o inimigo pode patrulhar.
Propriedades e tags permitem que você adicione significado de gameplay a uma entity sem precisar de um componente especial para cada pequeno dado.
Tags são mais rápidas para consultar do que propriedades, então são melhores, por exemplo, para identificar uma entity que pode receber dano ou que é inimiga, etc. Mas elas não carregam valor. Uma propriedade é mais lenta para consultar, mas você pode adicionar um valor. Em termos de código, propriedades de entity são literalmente dicionários Python.
Visualização de Template de Entity
Algumas entities são instâncias de Entity Templates. O Player que você encontrará no novo Projeto default do Cave, por exemplo, é uma instância deste template aqui:

Instâncias de template são mostradas de forma diferente no Scene Graph, usando a cor de template do Cave. Isso ajuda você a reconhecer que a entity vem de um asset de template reutilizável.
Quando uma entity é uma instância de template:
- Seus filhos internos pertencem ao template.
- A instância colocada pertence à cena.
- A estrutura do template é editada abrindo o asset do template.
- Valores locais ainda podem ser ajustados quando expostos como propriedades.
A próxima lição explica Entity Templates com mais detalhes.
O Modelo Mental da Entity
Pense em uma entity como um pequeno recipiente:
- O nome ajuda você a entendê-la.
- O ID ajuda o Cave a rastreá-la.
- O estado ativo controla se ela participa.
- O pai controla onde ela pertence.
- Os components definem o que ela faz.
- As propriedades e tags descrevem dados extras de gameplay.
Esse é o núcleo da construção de cena no Cave.
Quando as entities fazem sentido, o Scene Graph se torna muito mais do que uma lista de objetos. Ele se torna a estrutura do seu mundo de jogo.