extends Node2D # member variables here, example: # var a=2 # var b="textvar" var thread = Thread.new() #this function runs in a thread! #threads always take one userdata argument func _bg_load(path): print("THREAD FUNC!") #load the resource var tex = ResourceLoader.load(path) #call _bg_load_done on main thread call_deferred("_bg_load_done") return tex #return it func _bg_load_done(): #wait for the thread to complete, get the returned value var tex = thread.wait_to_finish() #set to the sprite get_node("sprite").set_texture(tex) func _on_load_pressed(): if (thread.is_active()): #already working return print("START THREAD!") thread.start(self,"_bg_load","res://mona.png")