Cambiar entre escenas

Actualización de la página :
Fecha de creación de la página :

Entorno de verificación

Windows
  • Ventanas 11
Unity Editor
  • 2020.3.25f1
Paquete del sistema de entrada
  • 1.2.0

Requisitos previos para esta sugerencia

Los siguientes ajustes se han realizado de antemano como premisa para la descripción de este consejo.

Más información sobre cómo cambiar entre escenas

Una escena es una llamada "escena", pero Unity usa la palabra "escena" tal como es, así que lo explicaré con la expresión escena.

Las escenas a menudo cambian entre escenas en el juego. Por ejemplo, si inicias el juego desde el menú de inicio y comienza la acción, puedes pensar en ello como un interruptor de escena. Además, la acción de abrir la pantalla de menú durante una acción también será un cambio de escena dependiendo de la expresión del menú.

Este tipo de cambio de escena debe implementarse en Unity, y hay muchas maneras de hacerlo. Por ejemplo, solo debe haber una "Escena (en Unity)" en el juego. Cuando la escena del juego cambia, todos los objetos de la escena anterior se descartan y se generan los objetos necesarios para la siguiente escena. Sin embargo, aunque este enfoque tiene la ventaja de proporcionar solo una escena, tiene la desventaja de tener que administrar mediante programación las transiciones de objetos.

En este consejo, me gustaría implementar un método para preparar tantos archivos de "escena" como escenas haya y colocar los objetos necesarios en la escena por adelantado para cambiar de escena. Cambiar entre escenas reales es muy fácil porque todo lo que tienes que hacer es cambiar entre archivos de escena.

Preparación de la escena

Primero, cree un proyecto normal. Se supone que ya ha preparado el paquete del sistema de entrada y configurado la cámara.

Esta vez, prepararemos dos archivos de escena e implementaremos la operación de hacer clic en el botón en la primera escena y pasar a la segunda escena.

La SampleScene escena existente debe llamarse , así que cámbiela SampleScene1 a .

A continuación, haga clic derecho en un área vacía del proyecto y seleccione "Escena" en "Crear". También puede agregarlo desde el botón + debajo de la pestaña del proyecto.

Se agregará un nuevo archivo de escena, así que asígnele el nombre SampleScene2 .

SampleScene1 Haga doble clic para abrir la escena y colocar el objeto como se muestra a continuación. SampleScene2 Al hacer clic en el botón, puede pasar a , para que el diseño sea adecuado.

SampleScene2 Haga doble clic para abrir la escena y colocar el objeto como se muestra a continuación. No importa lo que pongas porque solo quieres saber qué ha cambiado.

Después de crear la escena, abra "Configuración de > compilación de archivos" en el menú.

Colocar escenas incluidas en SampleScene2 la compilación.

Cierre la configuración de compilación una vez que se agreguen como se muestra a continuación.

Proceso de cambio de escena

El cambio de escena se realiza mediante script, así que cree un script. El nombre es arbitrario, pero en este caso SceneChange es .

El script tiene este aspecto:

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

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

El contenido es muy simple SceneManager.LoadScene y puede cambiar entre escenas llamando a métodos.

El primer argumento es el nombre de la escena a la que se va a cambiar.

Si especifica como LoadSceneMode.Single segundo argumento, sólo puede abrir la escena especificada mientras cierra la escena actual. También hay un parámetro llamado simplemente agregar LoadSceneMode.Additive escena, pero no lo explicaré en este artículo.

Después de guardar el script, SampleScene1 ábralo y adjúntelo a . EventSystem Puede ser cualquier objeto al que se adjunte.

Establezca OnClick el evento click del botón en un objeto adjunto para que SceneChange se pueda llamar al método.

Intenta ejecutar el juego y ve si la escena cambia después de hacer clic en el botón.