private void StartNextScene() { ICollection <object> data = null; if (currentScene != null) { data = currentScene.ExportData(); currentScene.OnEnd(); if (!currentScene.AlwaysActive) { activeScenes.RemoveIfExists(currentScene); } } currentScene = nextSceneToStart; nextSceneToStart = null; activeScenes.AddIfMissing(currentScene); currentScene.ImportData(data); currentScene.OnStart(); isLoading = false; useLoadingScreen = false; }