示例#1
0
        public void Process(ProcessSetScenesConfig config)
        {
            _loadingConfigsQueue.Enqueue(config);
            if (_currentConfig != null)
            {
                return;
            }

            _ProcessNextConfig();
        }
示例#2
0
        private void _SceneSetProcessingComplete()
        {
            SceneManager.sceneLoaded   -= _SceneLoaded;
            SceneManager.sceneUnloaded -= _SceneUnloaded;

            _loadedConfigs.Clear();
            _activeScenes.Clear();

            _numScenesToUnload = 0;
            _currentConfig     = null;

            _ProcessNextConfig();
        }
示例#3
0
        private void _ProcessNextConfig()
        {
            if (_loadingConfigsQueue.Count == 0)
            {
                return;
            }

            SceneManager.sceneLoaded   += _SceneLoaded;
            SceneManager.sceneUnloaded += _SceneUnloaded;

            _currentConfig = _loadingConfigsQueue.Dequeue();
            _CollectAllScenesOnStage();

            if (_currentConfig.LoadingList.Count > 0)
            {
                _Load();
            }
            else
            {
                _Unload();
            }
        }