public override IEnumerable <CheckResult> GetResults(SceneObjects so) { try { int count = so.sceneObjects.Length; int i = 0; foreach (var go in so.sceneObjects) { float progress = ++i / count; if (EditorUtility.DisplayCancelableProgressBar("Finding Transforms...", $"{go.name}", progress)) { break; } Transform t = go.transform; if (t.localScale.sqrMagnitude == 0) { yield return(new CheckResult(this, CheckResult.Result.Warning, $"Transform of Game Object \"{go.name}\" has zero Scale.", go)); } } } finally { EditorUtility.ClearProgressBar(); } }
public override IEnumerable <CheckResult> GetResults(SceneObjects so) { try { int count = so.allObjects.Length; int i = 0; foreach (var go in so.allObjects) { float progress = ++i / count; if (EditorUtility.DisplayCancelableProgressBar("Finding Empty Game Objects...", $"{go.name}", progress)) { break; } var allComps = go.GetComponents <Component>(); if (allComps.Length == 1) { if (!go.isStatic) { if (!so.referencedGameObjects.Contains(go)) { var result = new CheckResult(this, CheckResult.Result.Warning, $"Empty Game Object {go.name} is not static", go); result.resolutionActionIndex = 0; yield return(result); } } else { if (go.transform.childCount == 0) { if (!so.referencedGameObjects.Contains(go) && !so.referencedComponents.Contains(go.transform)) { var result = new CheckResult(this, CheckResult.Result.Notice, "Empty Static Game Object is not referenced, and has no children", go); result.resolutionActionIndex = 1; yield return(result); } } } } } } finally { EditorUtility.ClearProgressBar(); } }
void PerformChecks() { List <CheckResult> results = new List <CheckResult>(); bool canceled = false; try { var so = new SceneObjects(); int count = s_CheckStates.Count; int i = 0; foreach (var kvp in s_CheckStates) { float t = (float)i / count; if (EditorUtility.DisplayCancelableProgressBar("Performing Checks", kvp.Key.name, t)) { canceled = true; break; } if (kvp.Value) { results.AddRange(kvp.Key.GetResults(so)); } i++; } } finally { EditorUtility.ClearProgressBar(); } if (!canceled) { m_Results = results; } sortMode = SortMode.None; noticeCount = m_Results.Where(o => o.result == CheckResult.Result.Notice).Count(); warningCount = m_Results.Where(o => o.result == CheckResult.Result.Warning).Count(); errorCount = m_Results.Where(o => o.result == CheckResult.Result.Failed).Count(); BuildIgnoredList(); Repaint(); }
public override IEnumerable <CheckResult> GetResults(SceneObjects sceneObjects) { foreach (var obj in sceneObjects.allObjects) { if (obj.TryGetComponent(out Renderer r)) { foreach (var mat in r.sharedMaterials) { if (mat == null) { yield return(new CheckResult(this, CheckResult.Result.Failed, $"Missing Material for Object {obj.name}", obj)); break; } } } } }
public abstract IEnumerable <CheckResult> GetResults(SceneObjects sceneObjects);