Carregar uma Cena
Parte da seção Criando jogos de verdade do Journey de Unity da Coddy. Lição 17 de 56.
Um jogo no Unity é dividido em cenas: um menu, cada fase, os créditos. Cada cena é um arquivo próprio com seus próprios objetos, e um script muda para outra cena usando SceneManager.LoadScene, do namespace UnityEngine.SceneManagement. O botão Play deste menu, configurado no Inspector, abre a fase Forest:
using UnityEngine;
using UnityEngine.SceneManagement;
public class MainMenu : MonoBehaviour
{
public void Play()
{
SceneManager.LoadScene("Forest");
}
}O Unity só consegue carregar cenas que estejam na lista de cenas da build: no Unity 6, ela fica em File > Build Profiles, em Scene List (nas versões anteriores, a janela se chama Build Settings). O nome deve ser exatamente igual ao do arquivo da cena. Se uma cena não estiver na lista ou houver um erro de digitação, como "Forrest", nada será carregado e o Console exibirá um erro que começa com Scene 'Forrest' couldn't be loaded e informa que a cena não foi adicionada à build; o jogo permanece no menu.
A mudança não é instantânea. O restante do frame atual é executado primeiro, então as linhas após LoadScene ainda são executadas; no início do próximo frame, o Unity destrói todos os objetos da cena antiga e cria os da nova, cujos scripts começam novamente com Awake e Start.
Desafio
FácilUm hub com dois portais. Esta versão tem três cenas: Hub (a primeira), Desert e Glacier. No Hub, um portal leva ao Desert e outro ao Glacier, e cada um deles tem um portal de volta ao Hub. Todos os portais têm o script Portal, e o Inspector define sceneName para o destino. As setas movem o Player (pronto).
Escreva Portal.cs: quando o Player (com a tag Player) entrar em um portal, carregue a cena indicada por sceneName desse portal.
Pressione Play, visite os dois lugares e, em seguida, Check.
Experimente você mesmo
using UnityEngine;
public class Portal : MonoBehaviour
{
public string sceneName;
// quando o jogador entrar, carregue a cena chamada sceneName
}
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Criando jogos de verdade
1Texto na tela
Canvas e textoExiba a pontuaçãoFormate númerosUm cronômetro regressivoRevisão: velocímetro4Cenas e Fases
Carregar uma CenaReiniciar a FasePróxima FaseManter entre CenasRevisão: Seleção de Fases10Projeto: Jogo de Plataforma 3D
O PercursoPlataformas Móveis2Botões e telas
Botões e onClickLambdasConectando no InspectorPainéis ligados e desligadosBarras de vidaRevisão: Loja de melhorias5Salvando com PlayerPrefs
Salvar um númeroCarregar com um valor padrãoRecordeSalvar configuraçõesRevisão: Moedas no banco