Menu
CoddyTech

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.

challenge icon

Desafio

Fácil

Faça com que cada portal carregue a cena indicada por seu sceneName.

  1. No início de Portal.cs, adicione using UnityEngine.SceneManagement;.
  2. Escreva void OnTriggerEnter(Collider other): quando other.CompareTag("Player"), chame SceneManager.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

Pratique por conta própria: Playground de Unity