Come cambiare scena in Godot

Un fast help video veloce su come cambiare scena

Se vuoi conoscere come cambiare la scena in Godot Engine (passare tra un livello e l’altro), questo è come cambiare scena in Godot.

Il codice di per se è molto semplice, è solo una linea di codice

extends Node2D
#Godot v3.5.1

func _physics_process(delta):
	if SomeInput:
		get_tree().change_scene("scenePath")

Godot è basato sui Nodi, ogni scena, praticamente, è una colleziona di Nodi salvata con l’estenzione “.tscn”. Se vuoi puoi aprire i file dei node con qualsiasi editor di testo che vuoi e li puoi leggere come se fosse testo (se proprio vuoi esagerare puoi anche creareli scrivendo del semplice testo).
SceneTree gestisce la gerarchia dei Nodi in una scena. Se vuoi piu informazioni puoi dare un occhiata al link della documentazione qui.

get_tree()Chiama la classe sceneTree
change_scene(“scenePath”)Questa funzione fa il vero switch tra due scene,
neccessita di un indirizzo della scena che vuoi caricare. L’indirizzo è solo una stringa.

Packed Scenes

Per rendere tutto piu semplice e gestibile potresti decidere di esportare le variabili e usarne uno di tipo packedScene. Questo è molto utile se vuoi piu flessibilita con i tuoi livelli.
L’esportazione delle variabili ti permete di cambiare il loro valore (contenuto) direttamente nell’editor di Godot. Questo significa che non hai bisogno di cambiare la variabile diretamente dentro il “.gd” file ogni volta che vuoi fare dei cambiamenti. Da considerare che i file sono istance per la maggior parte delle volte, quindi non unici, facendo cambiamenti dall’editor il contenuto del file originale non cambia.

extends Node2D
#Godot v3.5.1

export (PackedScene) var myNextLevel 
Puoi fare drag n drop di una scena.tscn sulla variabile esportata direttamente nel editor.

Se vuoi cambiare scena usando una variabile packedScene devi usare invece change_scene_to(packedSceneVariable).

extends Node2D
#Godot v3.5.1

export (PackedScene) var myNextLevel 
func _physics_process(delta):
	if SomeInput:
		get_tree().change_scene_to(myNextLevel)

E questo è tutto quello che serve per cambiare scena in Godot Engine.

, ,