Game Manager y escena Preload
Por defecto, la versión actual de Unity no tiene un objeto gestor de escenas, sino que cualquier objeto creado se destruye al cambiar de escena.
Es por ello que debemos crear una escena vacía que se ejecute al arrancar y que contenga un objeto que no se destruya durante todo el ciclo de vida del juego.
La escena vacía es la que se suele denominar
Preload y será la primera al hacer el
Build.
Además, a esta escena le añadiremos un
Empty object llamado
GameManager y le asociaremos nuestro script
GameManager con el siguiente código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class GameManager : MonoBehaviour {
//Objeto GameManager
private GameObject gameManager;
void Start () {
//Busco el objeto llamado GameManager
GameObject gameManager = GameObject.Find("GameManager");
//Le indico que no se destruya al cargar otra escena
DontDestroyOnLoad(gameManager);
//Cargo la escena de inicio
SceneManager.LoadScene("Inicio");
}
}
De este modo, nos hemos asegurado durante todo el juego la existencia de un objeto con un script asociado que nos permitirá controlar los cambios entre las diferentes escenas.
Para terminar, haz clic en
File > Build Settings y asegúrate de que la escena
Preload está añadida. De lo contrario, ha clic en
Add Open Scenes y comprueba que se añade: