Mostrando entradas con la etiqueta Cambiar de escena por tiempo en Godot 4.7. Mostrar todas las entradas
Mostrando entradas con la etiqueta Cambiar de escena por tiempo en Godot 4.7. Mostrar todas las entradas

miércoles, 29 de julio de 2026

Cambiar de escena por tiempo en Godot 4.7, perfectamentente sin fallos incluso en HTML;

 extends Node3D


## Escena a la que se cambiará tras finalizar el tiempo

@export var siguiente_escena: PackedScene


## Tiempo de espera en segundos antes de cambiar de escena

@export var tiempo_espera: float = 5.0


func _ready() -> void:

var timer := get_tree().create_timer(tiempo_espera)

timer.timeout.connect(_cambiar_escena_directa)


func _cambiar_escena_directa() -> void:

if not siguiente_escena:

push_warning("No se ha asignado ninguna escena en el Inspector.")

return


# 1. Guardamos una referencia a la escena actual (la que queremos borrar)

var escena_actual := get_tree().current_scene

# 2. Instanciamos la nueva escena

var nueva_instancia := siguiente_escena.instantiate()

# 3. Añadimos la nueva escena al nodo raíz del proyecto

get_tree().root.add_child(nueva_instancia)

# 4. Establecemos la nueva escena como la escena activa

get_tree().current_scene = nueva_instancia

# 5. Eliminamos la escena vieja

if escena_actual:

escena_actual.queue_free()


-----------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------------

Explicacion: Me encuentro trabajando un videojuego en que el cambio de escenas es constante y muy importante, y lo quiero en html y con Godot 4.7   me encontraba el problema que la transicion de una escena a otra no era limpia al usar HTML, salia una pantalla de color gris a intermedio de cada escena y este GDScript consultado ala IA me lo a solucionado......la escena y el tiempo los arrastro y marco en el inspector.