/// <summary> /// Synchronously runs validation on all of the configured areas. /// </summary> public void Run() { if (_projectAssetValidatorManager != null) { _projectAssetValidatorManager.Search(); _projectAssetValidatorManager.ValidateAll(); } while (HasScenesToSearch()) { _currentScenePath = _scenePaths[_sceneProgress]; // Only load the next scene if we are not already in it if (SceneManager.GetActiveScene().path != _currentScenePath) { EditorSceneManager.OpenScene(_currentScenePath); } var activeSceneManager = new ActiveSceneValidatorManager(_cache, _logCache); activeSceneManager.Search(); activeSceneManager.ValidateAll(); _crossSceneValidatorManager?.Search(); ++_sceneProgress; } _crossSceneValidatorManager?.ValidateAll(); _isRunning = true; }
/// <summary> /// Runs a synchronous step of scene validation (cross and/or active if enabled). /// </summary> private void ContinueSceneValidation() { if (!HasScenesToSearch()) { if (_crossSceneValidatorManager == null) { return; } _mode = Mode.CrossScene; if (_crossSceneValidatorManager.ContinueValidation()) { if (ProjectTools.IsDebugging) { Debug.LogFormat( CrossSceneValidationProgressFormat, _crossSceneValidatorManager.GetProgress()); } } else { if (ProjectTools.IsDebugging) { Debug.LogFormat(CrossSceneValidationCompleted); } } return; } if (_activeSceneValidatorManager == null) { _currentScenePath = _scenePaths[_sceneProgress]; // Only load the next scene if we are not already in it if (SceneManager.GetActiveScene().path != _currentScenePath) { EditorSceneManager.OpenScene(_currentScenePath); } _activeSceneValidatorManager = new ActiveSceneValidatorManager(_cache, _logCache); _activeSceneValidatorManager.Search(); _crossSceneValidatorManager?.Search(); } _mode = Mode.ActiveScene; if (_activeSceneValidatorManager.ContinueValidation()) { if (ProjectTools.IsDebugging) { Debug.LogFormat( SceneValidationProgressFormat, _activeSceneValidatorManager.GetProgress(), _sceneProgress, _scenePaths.Count, _currentScenePath); } } else { if (ProjectTools.IsDebugging) { Debug.LogFormat( ScenesValidationProgressFormat, _sceneProgress, _scenePaths.Count, _currentScenePath); } _sceneProgress++; _activeSceneValidatorManager = null; } }