Alternar entre cenas
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.