extends Node signal LOADING_PROGRESS_UPDATED @export var loadingScene: Node = preload("res://scenes/ui/loading_screen.tscn").instantiate() var scenePath: String func loadScene(caller: Node, path: String): scenePath = path get_tree().root.add_child(loadingScene) ResourceLoader.load_threaded_request(scenePath) print(scenePath) caller.queue_free() # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: if scenePath: var progress: Array = [] var loaderStatus: ResourceLoader.ThreadLoadStatus = ResourceLoader.load_threaded_get_status(scenePath, progress) if loaderStatus == ResourceLoader.ThreadLoadStatus.THREAD_LOAD_LOADED: var loadedScene = ResourceLoader.load_threaded_get(scenePath).instantiate() get_tree().root.remove_child(loadingScene) get_tree().root.add_child(loadedScene) scenePath = "" elif loaderStatus == ResourceLoader.ThreadLoadStatus.THREAD_LOAD_IN_PROGRESS: LOADING_PROGRESS_UPDATED.emit(progress[0]) else: pass