Пример #1
0
    public static SceneFreezeInfo Freeze(this Scene scene)
    {
        SceneFreezeInfo freeze = new SceneFreezeInfo(scene);

        freeze.Freeze();
        return(freeze);
    }
Пример #2
0
        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);
        }