public static SceneFreezeInfo Freeze(this Scene scene) { SceneFreezeInfo freeze = new SceneFreezeInfo(scene); freeze.Freeze(); return(freeze); }
public static IEnumerator OnProcessScene(IEnumerator loader, Scene scene) { SceneFreezeInfo freeze = scene.Freeze(); Scene scenePrev = SceneManager.GetActiveScene(); SceneManager.SetActiveScene(scene); // The loading screen is so finetuned, adding just one yield return null causes the lighting to break! // We work around it by giving the scene one freezed frame. yield return(null); SceneManager.SetActiveScene(scenePrev); yield return(PatchContent(scene)); freeze.Unfreeze(); yield return(loader); }