Skip to content

Get some lag spikes while loading ? #19

@Celthim

Description

@Celthim

Hi !
I searched for a plugin like yours because having my scene loading at start makes my game a bit long to load so I wanted to delay some loading while the player is in the menus.
I managed to get the plugin to work even if I'm in 2D, but for some reasons I still get little lag spikes when it loads.

I don't know exactly what could cause this,

Here is basically the code I'm using (I removed all "position" related args everywhere as I don't need them and it was not compatible with 2D)

Init :

const GROUPS := [
	"Foreground",
	"UI",
	"Background",
]
const SLEEP_MSEC := 100

func _init():
	SceneAdder._sleep_msec = 100
	SceneAdder.set_groups(GROUPS)

async calls :

func async_load(path,type,to_assign=null):
	yield(get_tree(),"idle_frame")
	var target
	
	match type:
		"canvas":
			target = canvas_layer
		"background":
			target = background
		"foreground":
			target = foreground
		"middle":
			target = middle
	
	
	if to_assign == null:
		SceneLoader.load_scene_async(target, path)
	else:
		SceneLoader.load_scene_async_with_cb(target, path, funcref(self, "handle_load_callback"), {"type":type,"to_assign":to_assign})

Callback :

func handle_load_callback(path : String, instance : Node, data : Dictionary) -> void:
	propagate_call("add_"+data.type,[instance])
	
	match data.to_assign:
		"fight_scene":
			fight_scene = instance
		"codex":
			codex = instance
AsyncLoadLagSpike.mp4

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions