示例#1
0
        public void StartSceneLoad(SceneInfoSO scene, bool showLoadingScreen, bool overwrite)
        {
            if (overwrite)
            {
                PrepareLoadedScenesForUnload();
            }

            LoadScenes(showLoadingScreen, scene);
            UnloadScenesPreparedForUnload();
        }
示例#2
0
        private void LoadScenes(bool showLoadingScreen, params SceneInfoSO[] scenesToLoad)
        {
            activeScene = scenesToLoad[0];

            foreach (SceneInfoSO scene in scenesToLoad)
            {
                if (!SceneIsLoaded(scene.path))
                {
                    sceneLoadOperations.Add(SceneManager.LoadSceneAsync(scene.path, LoadSceneMode.Additive));
                }
            }

            sceneLoadOperations[0].completed += OnActiveSceneLoadOperationCompleted;

            if (showLoadingScreen)
            {
                loadScreenEventChannel.RaiseRequest(sceneLoadOperations.ToArray());
            }

            sceneLoadOperations.Clear();
        }