extends Node var queue func _ready(): # Initialize. queue = preload("res://resource_queue.gd").new() # Call after you instance the class to start the thread. queue.start() func _process(_delta): # Returns true if a resource is done loading and ready to be retrieved. if queue.is_ready("res://main.tscn"): set_process(false) # Returns the fully loaded resource. var next_scene = queue.get_resource("res://main.tscn").instance() get_node("/root").add_child(next_scene) get_node("/root").remove_child(self) queue_free() else: # Get the progress of a resource. var progress = round(queue.get_progress("res://main.tscn") * 100) get_node("ProgressBar").set_value(progress) func _on_Button_button_up(): get_node("Button").hide() set_process(true) # Queue a resource. queue.queue_resource("res://main.tscn", true)