class_name UISystem extends Control enum Layer { Game, VN, Test, Debug } func addSubscene(subscene:Control, layer:Layer) -> void: subscene.originalParent.remove_child.call_deferred(subscene) match layer: Layer.Game: $LayerGame.add_child.call_deferred(subscene) Layer.Debug: $LayerDebug.add_child.call_deferred(subscene) Layer.VN: $LayerVN.add_child.call_deferred(subscene) _: push_error("Invalid layer: " + str(layer)) return func removeSubscene(subscene:Control) -> void: subscene.get_parent().remove_child(subscene)