Canviar d'escena

Pàgina actualitzada :
Data de creació de la pàgina :

Entorn de verificació

Windows
  • Finestres 11
Editor d'unitat
  • 25.3.2020
Paquet del sistema d'entrada
  • 1.2.0

Requisits previs per a aquest consell

La configuració següent s'ha fet amb antelació com a premissa per a la descripció d'aquest consell.

Obtén informació sobre com pots canviar d'escena

Una escena és una anomenada "escena", però la unitat utilitza la paraula "escena" tal com és, així que ho explicaré amb l'expressió escena.

Les escenes sovint canvien entre escenes del joc. Per exemple, si inicieu el joc des del menú d'inici i s'inicia l'acció, podeu pensar-hi com un canvi d'escena. A més, l'acció d'obrir la pantalla del menú durant una acció també serà un canvi d'escena en funció de l'expressió del menú.

Aquest tipus de canvi d'escena s'ha d'implementar a Unity, i hi ha moltes maneres de fer-ho. Per exemple, només hi hauria d'haver una "Escena (a la unitat)" al joc. Quan l'escena del joc canvia, tots els objectes de l'escena anterior es descarten i es generen els objectes necessaris per a la següent escena. No obstant això, si bé aquest enfocament té l'avantatge de proporcionar només una escena, té l'inconvenient d'haver de gestionar programàticament les transicions d'objectes.

En aquest consell, m'agradaria implementar un mètode per preparar tants fitxers "Escena" com escenes hi hagi i col·locar els objectes necessaris a l'escena amb antelació per canviar d'escena. Canviar entre escenes reals és molt fàcil perquè tot el que heu de fer és canviar entre fitxers d'escena.

Preparant l'escena

En primer lloc, crear un projecte normal. Se suposa que ja heu preparat el paquet del sistema d'entrada i configurat la càmera.

Aquesta vegada, prepararem dos fitxers d'escena i implementarem l'operació de fer clic al botó de la primera escena i passar a la segona escena.

L'escena SampleScene existent s'ha d'anomenar , així que canvieu-ho SampleScene1 a .

A continuació, feu clic amb el botó dret en una àrea buida del projecte i seleccioneu "Escena" a "Crea". També podeu afegir-lo des del botó + que hi ha a sota de la pestanya del projecte.

S'afegirà un nou fitxer d'escena, així que anomeneu-lo SampleScene2 .

SampleScene1 Feu doble clic per obrir l'escena i col·locar l'objecte tal com es mostra a continuació. Quan feu SampleScene2 clic al botó, podeu fer la transició a , de manera que el disseny pugui ser adequat.

SampleScene2 Feu doble clic per obrir l'escena i col·locar l'objecte tal com es mostra a continuació. No importa el que posis perquè només vols saber què ha canviat.

Després de crear l'escena, obriu "Configuració del fitxer > de compilació" al menú.

Caiguda d'escenes incloses en la SampleScene2 construcció.

Tanqueu la configuració de compilació un cop s'afegeixin com es mostra a continuació.

Procés de canvi d'escena

El canvi d'escena es fa per script, així que si us plau, creeu un script. El nom és arbitrari, però en aquest cas SceneChange és .

El guió té aquest aspecte:

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

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

El contingut és molt senzill SceneManager.LoadScene i podeu canviar entre escenes trucant mètodes.

El primer argument és el nom de l'escena a la qual canviar.

Si especifiqueu com a LoadSceneMode.Single segon argument, només podeu obrir l'escena especificada mentre tanqueu l'escena actual. També hi ha un paràmetre anomenat simplement afegir LoadSceneMode.Additive escena, però no ho explicaré en aquest article.

Després de desar l'script, SampleScene1 obriu-lo i adjunteu-lo a . EventSystem Pot ser qualsevol objecte al qual s'adjunti.

Definiu OnClick l'esdeveniment de clic del botó en un objecte adjunt perquè es pugui cridar al mètodeSceneChange.

Proveu d'executar el joc i comproveu si l'escena canvia després de fer clic al botó.