Menu
CoddyTech

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.

challenge icon

Desafio

Fácil

Um 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
}
quiz iconTeste seus conhecimentos

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