SceneManager es un singleton autoload que envuelve el método nativo de Godot change_scene_to_packed detrás de una API basada en nombres. En lugar de dispersar llamadas a preload y referencias a escenas empaquetadas en tus scripts, invocas un único método con un nombre de tipo cadena y SceneManager se encarga del resto.

SceneManager está registrado como un autoload en la configuración del proyecto, lo que significa que está disponible desde cualquier script del juego sin necesidad de importar o buscar una referencia de nodo.

Resumen de la clase

Al iniciar, SceneManager carga un recurso Scenes (scenes.tres) desde uid://bn7v8txng2pda. Este recurso asocia nombres en formato de cadena legibles para humanos con instancias de PackedScene.

Inicialización

func _ready():
    _scenes.expected_type = TYPE_OBJECT
    _scenes.check_item_types()

_ready() valida que cada entrada del recurso Scenes sea un Object adecuado (una PackedScene cargada). Si alguna entrada presenta un tipo erróneo, check_item_types() registra un error en el arranque del juego.

La validación en _ready() detecta errores de configuración de forma temprana. Si añades una nueva escena a scenes.tres pero dejas la entrada vacía por error, verás el error en el panel de salida al iniciar el juego.

Referencia de la API

change_to_scene(scene_name: String) -> void

Realiza la transición a la escena identificada por scene_name, reemplazando la raíz del árbol de escenas actual.

  • scene_name (String): El nombre de la escena tal como está registrada en scenes.tres. Es una clave de cadena de texto sensible a mayúsculas y minúsculas.

Ejemplos de uso

Ir a la escena de batalla

func _on_play_button_pressed() -> void:
    SceneManager.change_to_scene("battle")

Volver al menú principal

func _on_quit_pressed() -> void:
    SceneManager.change_to_scene("main_menu")

Combinado con FlagsManager

func _on_start_pressed() -> void:
    if FlagsManager.get_flag("tutorial_completed"):
        SceneManager.change_to_scene("battle")
    else:
        SceneManager.change_to_scene("tutorial")

El recurso Scenes

Todos los nombres de escenas se definen en scenes.tres. Puedes ver y editar este archivo en el Inspector de Godot abriendo el recurso en el panel del Sistema de Archivos.

Los nombres de las escenas en scenes.tres son la única fuente de verdad para los argumentos válidos de change_to_scene.

Añadir una nueva escena

  1. Crea y guarda tu escena: Crea tu nueva escena en Godot y guárdala (por ejemplo, res://scenes/credits.tscn).
  2. Abre scenes.tres en el Inspector: En el panel del Sistema de Archivos, busca scenes.tres y ábrelo.
  3. Añade una nueva entrada: Añade un nuevo par clave-valor (nombre descriptivo → PackedScene).
  4. Verifica al iniciar: Ejecuta el proyecto para confirmar que no hay errores de registro.
  5. Llama a change_to_scene: SceneManager.change_to_scene("credits").

Páginas relacionadas


This site uses Just the Docs, a documentation theme for Jekyll.