Cenas e nós de cena
Cenas
Uma cena é uma árvore de nós que representa algo no seu jogo — um nível (fase), um menu, um personagem, uma tela de interface de usuário (UI). Tudo o que você vê no seu jogo vive dentro de uma cena.
As cenas são salvas como arquivos .prefab na pasta assets/ do projeto. O formato é um JSON legível por humanos, projetado para controle de versão:
assets/
scene-01.prefab ← uma cena
player-scene.prefab ← outra cena
enemies/
grunt.prefab
boss.prefab
A boot scene (cena de inicialização) é a primeira cena carregada quando o seu jogo inicia. Ela é configurada nas Project Settings (Configurações do Projeto).
Nós (game objects)
Um nó (também chamado de game object) é um elemento individual dentro de uma cena. Os nós são organizados em uma árvore: cada nó tem exatamente um pai e qualquer número de filhos. Essa hierarquia pai-filho é fundamental — transformar um pai (posição, rotação, escala) transforma automaticamente seus filhos.
Scene root
├── Camera
│ └── DirectionalLight (filho de Camera — segue a câmera)
├── Ground
│ ├── Tree (filho de Ground — move-se com o chão)
│ └── Rock
└── Player
└── Weapon
Cada nó possui um componente Transform — posição, rotação e escala no espaço 3D. Mesmo um nó vazio com apenas um Transform é útil: ele pode agir como um ponto de montagem, um local de spawn ou um pai de agrupamento.
Trabalhando com nós no editor
No painel Scene Hierarchy, você pode:
- Selecionar um nó para inspecionar e editar seus componentes.
- Criar um novo nó vazio via Scene → Add Empty Object.
- Mudar o pai (Reparent) arrastando um nó para cima de outro na hierarquia.
- Reordenar nós irmãos arrastando-os para cima e para baixo.
- Duplicar ou deletar através do menu de contexto com o botão direito.
Para adicionar componentes a um nó selecionado, use o botão Add Component ▾ no painel Inspector.
O arquivo de cena no disco
Um arquivo .prefab armazena toda a árvore de nós como JSON estruturado. Ele é legível por humanos e amigável para diffs:
{
"name": "MyScene",
"nodes": [
{
"name": "Camera",
"transform": { "position": { "x": 0, "y": 5, "z": 10 } },
"components": [ /* ... dados do componente ... */ ]
},
{
"name": "Ground",
"transform": { "scale": { "x": 10, "y": 1, "z": 10 } },
"children": [
{ "name": "Tree", "transform": { "position": { "x": 2, "y": 0, "z": -3 } } }
]
}
]
}
Você raramente precisará editar manualmente os arquivos de cena .prefab — o editor cuida disso —, mas o formato facilita a revisão de alterações no Git, a resolução de conflitos de mesclagem (merge) ou a criação de scripts para edições em lote.