public static void PrintSceneAnalysis() { var config = Config.Config.LoadFromFile(); var sa = LoadStaticAnalysisRules(config); var violations = new Dictionary <Rule, List <IViolation> >(); HashSet <string> ignoredSceneObjectNames = new HashSet <string>(config.IgnoredSceneRootObjectNames); for (var i = 0; i < SceneManager.sceneCount; i++) { var scene = SceneManager.GetSceneAt(i); GameObject[] rootGameObjects = scene.GetRootGameObjects(); for (var j = 0; j < rootGameObjects.Length; j++) { var obj = rootGameObjects[j]; if (ignoredSceneObjectNames.Contains(obj.name)) { continue; } violations = StaticAnalysis.MergeRuleViolationDictionary(violations, sa.Analyze(ViolationScope.Scene, obj)); } } EditorExtensions.ConsoleWindow.Instance.SetViolations(violations); }
public static void PrintPrefabAnalysis() { var config = Config.Config.LoadFromFile(); var sa = LoadStaticAnalysisRules(config); var prefabDirectories = config.PrefabLocations; var assets = AssetDatabase.FindAssets("t:prefab", prefabDirectories); var violations = new Dictionary <Rule, List <IViolation> >(); for (var i = 0; i < assets.Length; i++) { var asset = assets[i]; var path = AssetDatabase.GUIDToAssetPath(asset); var obj = AssetDatabase.LoadAssetAtPath <GameObject>(path); violations = StaticAnalysis.MergeRuleViolationDictionary(violations, sa.Analyze(ViolationScope.Prefab, obj)); } EditorExtensions.ConsoleWindow.Instance.SetViolations(violations); }