Carregar uma Cena
Parte da seção Criando Jogos de Verdade do Journey de Unity da Coddy. Lição 17 de 60.
Um jogo feito com Unity é dividido em cenas: um menu, cada fase e os créditos. Cada cena é um arquivo próprio, com seus próprios objetos, e um script muda para outra cena com SceneManager.LoadScene, do namespace UnityEngine.SceneManagement. O botão Jogar deste menu, conectado pelo 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 estão na lista de cenas da compilação: 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 o nome 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 à compilação; o jogo permanecerá no menu.
A mudança não é instantânea. O restante do quadro atual é executado primeiro, então as linhas após LoadScene ainda são executadas; no início do quadro seguinte, o Unity destrói todos os objetos da cena antiga e cria a nova, cujos scripts são iniciados novamente com Awake e Start.
Desafio
FácilFaça com que cada portal carregue a cena indicada por seu sceneName.
- No início de
Portal.cs, adicioneusing UnityEngine.SceneManagement;. - Escreva
void OnTriggerEnter(Collider other): quandoother.CompareTag("Player"), chameSceneManager.LoadScene(sceneName);.
Pressione “Jogar” e entre em cada portal: Desert, o Hub e Glacier são carregados nessa ordem. Em seguida, pressione “Verificar”.
Experimente você mesmo
using UnityEngine;
public class Portal : MonoBehaviour
{
public string sceneName;
// quando o jogador entrar, carregue a cena chamada sceneName
}
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 Fases2Botõ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 bancoPratique por conta própria: Playground de Unity