public void Process(ProcessSetScenesConfig config) { _loadingConfigsQueue.Enqueue(config); if (_currentConfig != null) { return; } _ProcessNextConfig(); }
private void _SceneSetProcessingComplete() { SceneManager.sceneLoaded -= _SceneLoaded; SceneManager.sceneUnloaded -= _SceneUnloaded; _loadedConfigs.Clear(); _activeScenes.Clear(); _numScenesToUnload = 0; _currentConfig = null; _ProcessNextConfig(); }
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(); } }