Alternar entre cenas

Página atualizada :
Data de criação de página :

Ambiente de verificação

Windows
  • Janelas 11
Unity Editor
  • 25.3.2020F1
Pacote do sistema de entrada
  • 1.2.0

Pré-requisitos para esta dica

As configurações a seguir foram feitas com antecedência como premissa para a descrição desta dica.

Saiba como alternar entre cenas

Uma cena é a chamada "cena", mas Unity usa a palavra "cena" como ela é, então vou explicá-la com a expressão cena.

As cenas geralmente alternam entre as cenas do jogo. Por exemplo, se você iniciar o jogo a partir do menu Iniciar e a ação começar, você pode pensar nele como uma mudança de cena. Além disso, a ação de abrir a tela de menu durante uma ação também será uma mudança de cena, dependendo da expressão do menu.

Esse tipo de mudança de cena precisa ser implementado no Unity, e há muitas maneiras de fazê-lo. Por exemplo, deve haver apenas uma "Cena (em Unity)" no jogo. Quando a cena do jogo muda, todos os objetos da cena anterior são descartados e os objetos necessários são gerados para a próxima cena. No entanto, embora essa abordagem tenha a vantagem de fornecer apenas uma cena, ela tem a desvantagem de ter que gerenciar programaticamente transições de objeto.

Nesta dica, eu gostaria de implementar um método de preparar tantos arquivos de "Cena" quanto houver cenas e colocar os objetos necessários na cena com antecedência para trocar de cena. Alternar entre cenas reais é muito fácil porque tudo o que você precisa fazer é alternar entre arquivos de cena.

Preparando a cena

Primeiro, crie um projeto normal. Presume-se que você já tenha preparado o pacote do sistema de entrada e configurado a câmera.

Desta vez, vamos preparar dois arquivos de cena, e implementar a operação de clicar no botão na primeira cena e fazer a transição para a segunda cena.

A SampleScene cena existente deve ser nomeada , então mude isso SampleScene1 para .

Em seguida, clique com o botão direito do mouse em uma área vazia do projeto e selecione "Cena" em "Criar". Você também pode adicioná-lo a partir do botão + abaixo da guia do projeto.

Um novo arquivo de cena será adicionado, então nomeie-o SampleScene2 .

SampleScene1 Clique duas vezes para abrir a cena e colocar o objeto conforme mostrado abaixo. SampleScene2 Ao clicar no botão, você pode fazer a transição para o , para que o layout possa ser apropriado.

SampleScene2 Clique duas vezes para abrir a cena e colocar o objeto conforme mostrado abaixo. Não importa o que você coloque, porque você só quer saber o que mudou.

Depois de criar a cena, abra "File > Build Settings" no menu.

Solte as cenas incluídas na SampleScene2 compilação.

Feche as configurações de compilação depois que elas forem adicionadas, conforme mostrado abaixo.

Processo de mudança de cena

A troca de cena é feita por script, então crie um script. O nome é arbitrário, mas neste caso SceneChange é .

O script tem a seguinte aparência:

using UnityEngine;
using UnityEngine.SceneManagement;  // 追加

public class SceneChange : MonoBehaviour
{
  /// <summary>ボタンをクリックしたときに呼ばれます。</summary>
  public void OnClick()
  {
    // 指定したシーンを読み込み他のシーンは削除します
    SceneManager.LoadScene("SampleScene2", LoadSceneMode.Single);
  }
}

O conteúdo é muito simples SceneManager.LoadScene e você pode alternar entre cenas chamando métodos.

O primeiro argumento é o nome da cena para a qual mudar.

Se você especificar como o LoadSceneMode.Single segundo argumento, poderá abrir somente a cena especificada ao fechar a cena atual. Há também um parâmetro chamado simplesmente adicionar LoadSceneMode.Additive cena, mas não vou explicá-lo neste artigo.

Depois de salvar o script, SampleScene1 abra-o e anexe-o ao . EventSystem Pode ser qualquer objeto ao qual você se anexar.

Defina OnClick o evento click do botão como um objeto anexado para que o SceneChange método possa ser chamado.

Tente executar o jogo e veja se a cena muda depois de clicar no botão.