From 591693da1df746144220645af5d31f5aa93207e5 Mon Sep 17 00:00:00 2001 From: Anders Ejlersen Date: Tue, 19 May 2026 20:15:30 +0200 Subject: [PATCH 01/11] Added support to scan prefabs --- Editor/Objects/Report.cs | 20 +++--- Editor/Utilities/EditorAssetUtility.cs | 11 ++-- Editor/Utilities/ProjectValidatorUtility.cs | 33 +++++----- Editor/ValidatorRunner.cs | 65 ++++++++++++------- .../GameObjectValidatorDuplicateComponents.cs | 43 ++++++++++++ ...ObjectValidatorDuplicateComponents.cs.meta | 3 + .../GameObjectValidatorObsoleteComponents.cs | 25 +++++++ ...eObjectValidatorObsoleteComponents.cs.meta | 3 + Editor/Window/EditorProjectValidatorWindow.cs | 14 ++-- .../UxmlEditorProjectValidatorWindow.uxml | 2 +- package.json | 2 +- 11 files changed, 159 insertions(+), 62 deletions(-) create mode 100644 Editor/Validators/GameObject/GameObjectValidatorDuplicateComponents.cs create mode 100644 Editor/Validators/GameObject/GameObjectValidatorDuplicateComponents.cs.meta create mode 100644 Editor/Validators/GameObject/GameObjectValidatorObsoleteComponents.cs create mode 100644 Editor/Validators/GameObject/GameObjectValidatorObsoleteComponents.cs.meta diff --git a/Editor/Objects/Report.cs b/Editor/Objects/Report.cs index dae4e6c..aa6d136 100644 --- a/Editor/Objects/Report.cs +++ b/Editor/Objects/Report.cs @@ -13,21 +13,21 @@ namespace Module.ProjectValidator.Editor private readonly Dictionary _assetToSeverityMapping = new(); private readonly Dictionary _instanceToSeverityMapping = new(); - public void Add(GUID assetGuid, string scenePath, string fieldPath, Attribute attribute, EValidatorSeverity severity, string message) + public void Add(GUID assetGuid, string relativePath, string fieldPath, Attribute attribute, EValidatorSeverity severity, string message) { var type = ProjectValidatorUtility.GetAttributeShortName(attribute); - Add(assetGuid, scenePath, fieldPath, type, severity, message); + Add(assetGuid, relativePath, fieldPath, type, severity, message); } - public void Add(GUID assetGuid, string scenePath, string fieldPath, string type, EValidatorSeverity severity, string message) + public void Add(GUID assetGuid, string relativePath, string fieldPath, string type, EValidatorSeverity severity, string message) { Entries.Add(new Entry { AssetGuid = assetGuid, AssetName = EditorAssetUtility.GetAssetName(assetGuid), - ScenePath = scenePath, + RelativePath = relativePath, FieldPath = fieldPath, - ScenePathRichText = ProjectValidatorUtility.ApplyRichTextToScenePath(scenePath), + RelativePathRichText = ProjectValidatorUtility.ApplyRichTextToRelativePath(relativePath), FieldPathRichText = ProjectValidatorUtility.ApplyRichTextToFieldPath(fieldPath), Type = type, Severity = severity, @@ -74,7 +74,7 @@ namespace Module.ProjectValidator.Editor return false; } - public bool TryGetSeverityFor(GUID assetGuid, string scenePath, out MappingEntry mapping) + public bool TryGetSeverityFor(GUID assetGuid, string relativePath, out MappingEntry mapping) { if (!_assetToSeverityMapping.TryGetValue(assetGuid, out mapping)) return false; @@ -83,7 +83,7 @@ namespace Module.ProjectValidator.Editor for (var i = 0; i < Entries.Count; i++) { - if (Entries[i].AssetGuid != assetGuid || Entries[i].ScenePath != scenePath || Entries[i].Severity <= mapping.Severity) + if (Entries[i].AssetGuid != assetGuid || Entries[i].RelativePath != relativePath || Entries[i].Severity <= mapping.Severity) continue; mapping = new MappingEntry(Entries[i].Severity, false); @@ -110,10 +110,10 @@ namespace Module.ProjectValidator.Editor public GUID AssetGuid; public string AssetName; - public string ScenePath; + public string RelativePath; public string FieldPath; - public string ScenePathRichText; + public string RelativePathRichText; public string FieldPathRichText; public string Type; @@ -124,7 +124,7 @@ namespace Module.ProjectValidator.Editor public bool Filter(string filter) { return AssetName.Contains(filter, StringComparison.InvariantCultureIgnoreCase) || - ScenePath.Contains(filter, StringComparison.InvariantCultureIgnoreCase) || + RelativePath.Contains(filter, StringComparison.InvariantCultureIgnoreCase) || FieldPath.Contains(filter, StringComparison.InvariantCultureIgnoreCase) || Type.Contains(filter, StringComparison.InvariantCultureIgnoreCase) || SeverityResult.Contains(filter, StringComparison.InvariantCultureIgnoreCase) || diff --git a/Editor/Utilities/EditorAssetUtility.cs b/Editor/Utilities/EditorAssetUtility.cs index fc956b4..be7796a 100644 --- a/Editor/Utilities/EditorAssetUtility.cs +++ b/Editor/Utilities/EditorAssetUtility.cs @@ -31,20 +31,21 @@ namespace Module.ProjectValidator.Editor internal static GUID GetAssetGuid(Object obj) { - var assetGuid = new GUID(); - + var assetPath = string.Empty; + if (obj is GameObject gameObject) { if (gameObject.scene.isLoaded) - GUID.TryParse(AssetDatabase.AssetPathToGUID(gameObject.scene.path), out assetGuid); + assetPath = gameObject.scene.path; else if (PrefabUtility.IsPartOfPrefabAsset(gameObject)) - GUID.TryParse(AssetDatabase.AssetPathToGUID(gameObject.scene.path), out assetGuid); + assetPath = AssetDatabase.GetAssetPath(gameObject); } else { - GUID.TryParse(AssetDatabase.GetAssetPath(obj), out assetGuid); + assetPath = AssetDatabase.GetAssetPath(obj); } + GUID.TryParse(AssetDatabase.AssetPathToGUID(assetPath), out var assetGuid); return assetGuid; } diff --git a/Editor/Utilities/ProjectValidatorUtility.cs b/Editor/Utilities/ProjectValidatorUtility.cs index 92eb95b..f9f520c 100644 --- a/Editor/Utilities/ProjectValidatorUtility.cs +++ b/Editor/Utilities/ProjectValidatorUtility.cs @@ -62,14 +62,17 @@ namespace Module.ProjectValidator.Editor return str; } - internal static void AppendToScenePath(GameObject gameObject, ref string scenePath) + internal static void AppendToRelativePath(GameObject gameObject, ref string relativePath, bool initial) { - scenePath = string.IsNullOrEmpty(scenePath) ? gameObject.name : $"{scenePath}/{gameObject.name}"; + if (string.IsNullOrEmpty(relativePath)) + relativePath = gameObject.name; + else + relativePath = initial ? $"{relativePath}{gameObject.name}" : $"{relativePath}/{gameObject.name}"; } - internal static string ApplyRichTextToScenePath(string scenePath) + internal static string ApplyRichTextToRelativePath(string relativePath) { - return scenePath.Replace("/", "/"); + return relativePath.Replace("/", "/"); } public static void AppendToFieldPath(FieldInfo fieldInfo, ref string fieldPath) @@ -105,7 +108,7 @@ namespace Module.ProjectValidator.Editor { var scene = SceneManager.GetSceneByPath(assetPath); - if (scene.isLoaded && TryFindSceneObjectByPath(scene, entry.ScenePath, out var gameObject)) + if (scene.isLoaded && TryFindSceneObjectByPath(scene, entry.RelativePath, out var gameObject)) EditorGUIUtility.PingObject(gameObject); else EditorGUIUtility.PingObject(asset); @@ -116,14 +119,14 @@ namespace Module.ProjectValidator.Editor } } - private static bool TryFindSceneObjectByPath(Scene scene, string scenePath, out GameObject gameObject) + private static bool TryFindSceneObjectByPath(Scene scene, string relativePath, out GameObject gameObject) { using var _ = ListPool.Get(out var rootObjects); scene.GetRootGameObjects(rootObjects); - var index = scenePath.IndexOf('/'); - var rootName = index != -1 ? scenePath[..index] : scenePath; - var childPath = index != -1 ? scenePath[(index + 1)..] : string.Empty; + var index = relativePath.IndexOf('/'); + var rootName = index != -1 ? relativePath[..index] : relativePath; + var childPath = index != -1 ? relativePath[(index + 1)..] : string.Empty; for (var i = 0; i < rootObjects.Count; i++) { @@ -212,25 +215,25 @@ namespace Module.ProjectValidator.Editor for (var j = 0; j < rootObjects.Count; j++) { var rootObject = rootObjects[j]; - var scenePath = string.Empty; - RebuildSceneInstanceMapping(report, dictMapping, rootObject, assetGuid, scenePath); + var relativePath = string.Empty; + RebuildSceneInstanceMapping(report, dictMapping, rootObject, assetGuid, relativePath, true); } } RebuildForAllParents(dictMapping); } - private static void RebuildSceneInstanceMapping(Report report, Dictionary dictMapping, GameObject gameObject, GUID assetGuid, string scenePath) + private static void RebuildSceneInstanceMapping(Report report, Dictionary dictMapping, GameObject gameObject, GUID assetGuid, string relativePath, bool initial) { var transform = gameObject.transform; - AppendToScenePath(gameObject, ref scenePath); + AppendToRelativePath(gameObject, ref relativePath, initial); - if (report.TryGetSeverityFor(assetGuid, scenePath, out var mapping)) + if (report.TryGetSeverityFor(assetGuid, relativePath, out var mapping)) dictMapping.Add(gameObject.GetInstanceID(), new Report.MappingEntry(mapping.Severity, false)); for (var i = 0; i < transform.childCount; i++) { - RebuildSceneInstanceMapping(report, dictMapping, transform.GetChild(i).gameObject, assetGuid, scenePath); + RebuildSceneInstanceMapping(report, dictMapping, transform.GetChild(i).gameObject, assetGuid, relativePath, false); } } diff --git a/Editor/ValidatorRunner.cs b/Editor/ValidatorRunner.cs index f992f35..85786a4 100644 --- a/Editor/ValidatorRunner.cs +++ b/Editor/ValidatorRunner.cs @@ -30,6 +30,7 @@ namespace Module.ProjectValidator.Editor var report = new Report(); ValidateAllScenes(report); ValidateAllAssets(report); + ValidateAllPrefabs(report); report.RebuildAssetMapping(); report.RebuildInstanceMapping(); report.SetAsActive(); @@ -155,7 +156,7 @@ namespace Module.ProjectValidator.Editor for (var j = 0; j < rootObjects.Count; j++) { - ValidateGameObject(rootObjects[j], string.Empty, report); + ValidateGameObject(rootObjects[j], "scene:", report, true); } if (!isLoaded) @@ -173,6 +174,23 @@ namespace Module.ProjectValidator.Editor ValidateAssetsBytype(report); } + private static void ValidateAllPrefabs(Report report) + { + var assets = EditorAssetUtility.LoadAllAssets(); + + for (var i = 0; i < assets.Length; i++) + { + try + { + ValidateGameObject(assets[i], "prefab:", report, true); + } + catch (Exception e) + { + Debug.LogException(e); + } + } + } + private static void ValidateAssetsBytype(Report report) where T : UnityEngine.Object { var assets = EditorAssetUtility.LoadAllAssets(); @@ -193,12 +211,13 @@ namespace Module.ProjectValidator.Editor private static void ValidateUnityObject(UnityEngine.Object obj, Report report) { var assetGuid = EditorAssetUtility.ObjectToAssetGuid(obj); - Validate(assetGuid, string.Empty, obj, report); + var assetPath = AssetDatabase.GUIDToAssetPath(assetGuid); + Validate(assetGuid, $"asset:{assetPath}", obj, report); } - private static void ValidateGameObject(GameObject gameObject, string scenePath, Report report) + private static void ValidateGameObject(GameObject gameObject, string relativePath, Report report, bool initial) { - ProjectValidatorUtility.AppendToScenePath(gameObject, ref scenePath); + ProjectValidatorUtility.AppendToRelativePath(gameObject, ref relativePath, initial); var assetGuid = EditorAssetUtility.GetAssetGuid(gameObject); using var _ = ListPool.Get(out var results); @@ -215,15 +234,15 @@ namespace Module.ProjectValidator.Editor var result = results[j]; if (result.Severity != EValidatorSeverity.Valid) - report.Add(assetGuid, scenePath, string.Empty, type, result.Severity, result.Message); + report.Add(assetGuid, relativePath, string.Empty, type, result.Severity, result.Message); } } - ValidateComponents(gameObject, assetGuid, scenePath, report); - ValidateChildren(gameObject, scenePath, report); + ValidateComponents(gameObject, assetGuid, relativePath, report); + ValidateChildren(gameObject, relativePath, report); } - private static void ValidateComponents(GameObject gameObject, GUID assetGuid, string scenePath, Report report) + private static void ValidateComponents(GameObject gameObject, GUID assetGuid, string relativePath, Report report) { using var _ = ListPool.Get(out var components); gameObject.GetComponents(components); @@ -231,21 +250,21 @@ namespace Module.ProjectValidator.Editor for (var i = 0; i < components.Count; i++) { if (components[i] != null) - Validate(assetGuid, scenePath, components[i], report); + Validate(assetGuid, relativePath, components[i], report); } } - private static void ValidateChildren(GameObject gameObject, string scenePath, Report report) + private static void ValidateChildren(GameObject gameObject, string relativePath, Report report) { var transform = gameObject.transform; for (var i = 0; i < transform.childCount; i++) { - ValidateGameObject(transform.GetChild(i).gameObject, scenePath, report); + ValidateGameObject(transform.GetChild(i).gameObject, relativePath, report, false); } } - private static void Validate(GUID assetGuid, string scenePath, object obj, Report report) + private static void Validate(GUID assetGuid, string relativePath, object obj, Report report) { var type = obj.GetType(); @@ -253,10 +272,10 @@ namespace Module.ProjectValidator.Editor return; var fieldPath = obj.GetType().Name; - Validate(assetGuid, scenePath, fieldPath, obj, entry, report); + Validate(assetGuid, relativePath, fieldPath, obj, entry, report); } - private static void Validate(GUID assetGuid, string scenePath, string parentFieldPath, object obj, TypeTree.Entry entry, Report report) + private static void Validate(GUID assetGuid, string relativePath, string parentFieldPath, object obj, TypeTree.Entry entry, Report report) { if (obj == null) return; @@ -268,7 +287,7 @@ namespace Module.ProjectValidator.Editor try { var component = entry.Components[i]; - ValidateComponent(component, obj, assetGuid, scenePath, report); + ValidateComponent(component, obj, assetGuid, relativePath, report); } catch (Exception e) { @@ -297,13 +316,13 @@ namespace Module.ProjectValidator.Editor { var fieldPathArrElement = fieldPath; ProjectValidatorUtility.AppendToFieldPath(idx, ref fieldPathArrElement); - ValidateField(field, eObj, assetGuid, scenePath, fieldPathArrElement, report); + ValidateField(field, eObj, assetGuid, relativePath, fieldPathArrElement, report); idx++; } } else { - ValidateField(field, value, assetGuid, scenePath, fieldPath, report); + ValidateField(field, value, assetGuid, relativePath, fieldPath, report); } } catch (Exception e) @@ -333,13 +352,13 @@ namespace Module.ProjectValidator.Editor { var fieldPathArrElement = fieldPath; ProjectValidatorUtility.AppendToFieldPath(idx, ref fieldPathArrElement); - Validate(assetGuid, scenePath, fieldPathArrElement, eObj, e.Entry, report); + Validate(assetGuid, relativePath, fieldPathArrElement, eObj, e.Entry, report); idx++; } } else { - Validate(assetGuid, scenePath, fieldPath, value, e.Entry, report); + Validate(assetGuid, relativePath, fieldPath, value, e.Entry, report); } } catch (Exception e) @@ -350,15 +369,15 @@ namespace Module.ProjectValidator.Editor } } - private static void ValidateField(TypeTree.ValidatorField field, object value, GUID assetGuid, string scenePath, string fieldPath, Report report) + private static void ValidateField(TypeTree.ValidatorField field, object value, GUID assetGuid, string relativePath, string fieldPath, Report report) { var result = (ValidatorResult)field.ValidatorMethod.Invoke(field.Validator, new[] { field.Attribute, value }); if (result.Severity != EValidatorSeverity.Valid) - report.Add(assetGuid, scenePath, fieldPath, field.Attribute, result.Severity, result.Message); + report.Add(assetGuid, relativePath, fieldPath, field.Attribute, result.Severity, result.Message); } - private static void ValidateComponent(TypeTree.ValidatorComponent component, object value, GUID assetGuid, string scenePath, Report report) + private static void ValidateComponent(TypeTree.ValidatorComponent component, object value, GUID assetGuid, string relativePath, Report report) { using var _ = ListPool.Get(out var results); component.ValidatorMethod.Invoke(component.Validator, new[] { value, results }); @@ -369,7 +388,7 @@ namespace Module.ProjectValidator.Editor var result = results[i]; if (result.Severity != EValidatorSeverity.Valid) - report.Add(assetGuid, scenePath, string.Empty, type, result.Severity, result.Message); + report.Add(assetGuid, relativePath, string.Empty, type, result.Severity, result.Message); } } } diff --git a/Editor/Validators/GameObject/GameObjectValidatorDuplicateComponents.cs b/Editor/Validators/GameObject/GameObjectValidatorDuplicateComponents.cs new file mode 100644 index 0000000..1ea0509 --- /dev/null +++ b/Editor/Validators/GameObject/GameObjectValidatorDuplicateComponents.cs @@ -0,0 +1,43 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Pool; + +namespace Module.ProjectValidator.Editor +{ + internal sealed class GameObjectValidatorDuplicateComponents : IGameObjectValidator + { + public void Validate(GameObject gameObject, List results) + { + using var _ = ListPool.Get(out var list); + gameObject.GetComponents(list); + list.Sort((c0, c1) => c0.GetType().GetHashCode().CompareTo(c1.GetType().GetHashCode())); + + if (list.Count == 0) + return; + + var type = list[0].GetType(); + var count = 1; + + for (var i = 1; i < list.Count; i++) + { + var t = list[i].GetType(); + + if (type == t) + { + count++; + } + else + { + if (count > 1) + results.Add(ValidatorResult.Create(EValidatorSeverity.Warning, $"GameObject has duplicate '{type.Name}' ({count}) components")); + + type = t; + count = 1; + } + } + + if (count > 1) + results.Add(ValidatorResult.Create(EValidatorSeverity.Warning, $"GameObject has duplicate '{type.Name}' ({count}) components")); + } + } +} \ No newline at end of file diff --git a/Editor/Validators/GameObject/GameObjectValidatorDuplicateComponents.cs.meta b/Editor/Validators/GameObject/GameObjectValidatorDuplicateComponents.cs.meta new file mode 100644 index 0000000..9947888 --- /dev/null +++ b/Editor/Validators/GameObject/GameObjectValidatorDuplicateComponents.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b27a4e96523d4d3d97c11b32814f29d3 +timeCreated: 1779213834 \ No newline at end of file diff --git a/Editor/Validators/GameObject/GameObjectValidatorObsoleteComponents.cs b/Editor/Validators/GameObject/GameObjectValidatorObsoleteComponents.cs new file mode 100644 index 0000000..d6be9b0 --- /dev/null +++ b/Editor/Validators/GameObject/GameObjectValidatorObsoleteComponents.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Reflection; +using UnityEngine; +using UnityEngine.Pool; + +namespace Module.ProjectValidator.Editor +{ + internal sealed class GameObjectValidatorObsoleteComponents : IGameObjectValidator + { + public void Validate(GameObject gameObject, List results) + { + using var _ = ListPool.Get(out var list); + gameObject.GetComponents(list); + + for (var i = 0; i < list.Count; i++) + { + var type = list[i].GetType(); + + if (type.GetCustomAttribute(typeof(ObsoleteAttribute)) != null) + results.Add(ValidatorResult.Create(EValidatorSeverity.Warning, $"GameObject has obsolete '{type.Name}' component")); + } + } + } +} \ No newline at end of file diff --git a/Editor/Validators/GameObject/GameObjectValidatorObsoleteComponents.cs.meta b/Editor/Validators/GameObject/GameObjectValidatorObsoleteComponents.cs.meta new file mode 100644 index 0000000..9a9d755 --- /dev/null +++ b/Editor/Validators/GameObject/GameObjectValidatorObsoleteComponents.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ca678bbf72fa4c8f8c9b945535aacf44 +timeCreated: 1779214145 \ No newline at end of file diff --git a/Editor/Window/EditorProjectValidatorWindow.cs b/Editor/Window/EditorProjectValidatorWindow.cs index 1a1451c..4989d7d 100644 --- a/Editor/Window/EditorProjectValidatorWindow.cs +++ b/Editor/Window/EditorProjectValidatorWindow.cs @@ -30,14 +30,14 @@ namespace Module.ProjectValidator.Editor _treeView.columns["type"].makeCell = CreateLabel; _treeView.columns["severity"].makeCell = CreateLabel; _treeView.columns["severity-message"].makeCell = CreateLabel; - _treeView.columns["scene-path"].makeCell = CreateLabel; + _treeView.columns["relative-path"].makeCell = CreateLabel; _treeView.columns["field-path"].makeCell = CreateLabel; _treeView.columns["asset"].bindCell = OnTreeViewBindCellAsset; _treeView.columns["type"].bindCell = OnTreeViewBindCellType; _treeView.columns["severity"].bindCell = OnTreeViewBindCellSeverity; _treeView.columns["severity-message"].bindCell = OnTreeViewBindCellSeverityMessage; - _treeView.columns["scene-path"].bindCell = OnTreeViewBindCellScenePath; + _treeView.columns["relative-path"].bindCell = OnTreeViewBindCellRelativePath; _treeView.columns["field-path"].bindCell = OnTreeViewBindCellFieldPath; _treeView.columns["severity"].unbindCell = OnTreeViewUnbindCellSeverity; @@ -46,7 +46,7 @@ namespace Module.ProjectValidator.Editor _treeView.columns["type"].comparison = OnTreeViewComparisonCellType; _treeView.columns["severity"].comparison = OnTreeViewComparisonCellSeverity; _treeView.columns["severity-message"].comparison = OnTreeViewComparisonCellSeverityMessage; - _treeView.columns["scene-path"].comparison = OnTreeViewComparisonCellScenePath; + _treeView.columns["relative-path"].comparison = OnTreeViewComparisonCellRelativePath; _treeView.columns["field-path"].comparison = OnTreeViewComparisonCellFieldPath; _treeView.selectionChanged += OnTreeViewSelectionChanged; @@ -170,11 +170,11 @@ namespace Module.ProjectValidator.Editor label.text = entry.SeverityResult; } - private void OnTreeViewBindCellScenePath(VisualElement ve, int index) + private void OnTreeViewBindCellRelativePath(VisualElement ve, int index) { var label = (Label)ve; var entry = _treeView.GetItemDataForIndex(index); - label.text = entry.ScenePathRichText; + label.text = entry.RelativePathRichText; } private void OnTreeViewBindCellFieldPath(VisualElement ve, int index) @@ -222,11 +222,11 @@ namespace Module.ProjectValidator.Editor return string.Compare(entry0.SeverityResult, entry1.SeverityResult, StringComparison.Ordinal); } - private int OnTreeViewComparisonCellScenePath(int index0, int index1) + private int OnTreeViewComparisonCellRelativePath(int index0, int index1) { var entry0 = _treeView.GetItemDataForIndex(index0); var entry1 = _treeView.GetItemDataForIndex(index1); - return string.Compare(entry0.ScenePath, entry1.ScenePath, StringComparison.Ordinal); + return string.Compare(entry0.RelativePath, entry1.RelativePath, StringComparison.Ordinal); } private int OnTreeViewComparisonCellFieldPath(int index0, int index1) diff --git a/Editor/Window/Uxml/UxmlEditorProjectValidatorWindow.uxml b/Editor/Window/Uxml/UxmlEditorProjectValidatorWindow.uxml index 1573eb8..f06f29c 100644 --- a/Editor/Window/Uxml/UxmlEditorProjectValidatorWindow.uxml +++ b/Editor/Window/Uxml/UxmlEditorProjectValidatorWindow.uxml @@ -10,7 +10,7 @@ - + diff --git a/package.json b/package.json index a9663df..1a71e3f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "com.module.project-validator", - "version": "0.3.0", + "version": "0.4.0", "displayName": "Module.ProjectValidator", "description": "", "unity": "6000.3", From 47c9c538195a55891f3df646159015bf9316ed7a Mon Sep 17 00:00:00 2001 From: Anders Ejlersen Date: Tue, 19 May 2026 20:24:16 +0200 Subject: [PATCH 02/11] Added attribute validators for min and range attributes --- Editor/Validators/Attributes.meta | 3 +++ .../Attributes/AttributeValidatorMin.cs | 23 +++++++++++++++++++ .../Attributes/AttributeValidatorMin.cs.meta | 3 +++ .../Attributes/AttributeValidatorRange.cs | 23 +++++++++++++++++++ .../AttributeValidatorRange.cs.meta | 3 +++ package.json | 2 +- 6 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 Editor/Validators/Attributes.meta create mode 100644 Editor/Validators/Attributes/AttributeValidatorMin.cs create mode 100644 Editor/Validators/Attributes/AttributeValidatorMin.cs.meta create mode 100644 Editor/Validators/Attributes/AttributeValidatorRange.cs create mode 100644 Editor/Validators/Attributes/AttributeValidatorRange.cs.meta diff --git a/Editor/Validators/Attributes.meta b/Editor/Validators/Attributes.meta new file mode 100644 index 0000000..7b92af6 --- /dev/null +++ b/Editor/Validators/Attributes.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 0aa1d741049f4074bb863b76ed604d07 +timeCreated: 1779214748 \ No newline at end of file diff --git a/Editor/Validators/Attributes/AttributeValidatorMin.cs b/Editor/Validators/Attributes/AttributeValidatorMin.cs new file mode 100644 index 0000000..59b7c1e --- /dev/null +++ b/Editor/Validators/Attributes/AttributeValidatorMin.cs @@ -0,0 +1,23 @@ +using UnityEngine; + +namespace Module.ProjectValidator.Editor +{ + internal sealed class AttributeValidatorMin : IAttributeValidator + { + public ValidatorResult Validate(MinAttribute attribute, object value) + { + if (value is int iValue) + { + if (iValue < attribute.min) + return ValidatorResult.Create(EValidatorSeverity.Error, $"Value {iValue} is less than minimum value of {attribute.min}"); + } + else if (value is float fValue) + { + if (fValue < attribute.min) + return ValidatorResult.Create(EValidatorSeverity.Error, $"Value {fValue} is less than minimum value of {attribute.min}"); + } + + return ValidatorResult.Valid; + } + } +} \ No newline at end of file diff --git a/Editor/Validators/Attributes/AttributeValidatorMin.cs.meta b/Editor/Validators/Attributes/AttributeValidatorMin.cs.meta new file mode 100644 index 0000000..7b95df1 --- /dev/null +++ b/Editor/Validators/Attributes/AttributeValidatorMin.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 2015106b3c9b450e9efb1333e5239033 +timeCreated: 1779214761 \ No newline at end of file diff --git a/Editor/Validators/Attributes/AttributeValidatorRange.cs b/Editor/Validators/Attributes/AttributeValidatorRange.cs new file mode 100644 index 0000000..b52c1f9 --- /dev/null +++ b/Editor/Validators/Attributes/AttributeValidatorRange.cs @@ -0,0 +1,23 @@ +using UnityEngine; + +namespace Module.ProjectValidator.Editor +{ + internal sealed class AttributeValidatorRange : IAttributeValidator + { + public ValidatorResult Validate(RangeAttribute attribute, object value) + { + if (value is int iValue) + { + if (iValue < attribute.min || iValue > attribute.max) + return ValidatorResult.Create(EValidatorSeverity.Error, $"Value {iValue} is not in the range [{attribute.min};{attribute.max}]"); + } + else if (value is float fValue) + { + if (fValue < attribute.min || fValue > attribute.max) + return ValidatorResult.Create(EValidatorSeverity.Error, $"Value {fValue} is not in the range [{attribute.min};{attribute.max}]"); + } + + return ValidatorResult.Valid; + } + } +} \ No newline at end of file diff --git a/Editor/Validators/Attributes/AttributeValidatorRange.cs.meta b/Editor/Validators/Attributes/AttributeValidatorRange.cs.meta new file mode 100644 index 0000000..531db6b --- /dev/null +++ b/Editor/Validators/Attributes/AttributeValidatorRange.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 3115c26bccfe4b1e964f784a3f9fdd55 +timeCreated: 1779214908 \ No newline at end of file diff --git a/package.json b/package.json index 1a71e3f..cc7d0bb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "com.module.project-validator", - "version": "0.4.0", + "version": "0.5.0", "displayName": "Module.ProjectValidator", "description": "", "unity": "6000.3", From 01ac17a0785d1ec8246efe6c44136c4e6e69b17b Mon Sep 17 00:00:00 2001 From: Anders Ejlersen Date: Tue, 19 May 2026 22:11:31 +0200 Subject: [PATCH 03/11] Removed prefixes on paths --- Editor/ValidatorRunner.cs | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Editor/ValidatorRunner.cs b/Editor/ValidatorRunner.cs index 85786a4..3cbfa63 100644 --- a/Editor/ValidatorRunner.cs +++ b/Editor/ValidatorRunner.cs @@ -156,7 +156,7 @@ namespace Module.ProjectValidator.Editor for (var j = 0; j < rootObjects.Count; j++) { - ValidateGameObject(rootObjects[j], "scene:", report, true); + ValidateGameObject(rootObjects[j], string.Empty, report, true); } if (!isLoaded) @@ -182,7 +182,7 @@ namespace Module.ProjectValidator.Editor { try { - ValidateGameObject(assets[i], "prefab:", report, true); + ValidateGameObject(assets[i], string.Empty, report, true); } catch (Exception e) { @@ -212,7 +212,7 @@ namespace Module.ProjectValidator.Editor { var assetGuid = EditorAssetUtility.ObjectToAssetGuid(obj); var assetPath = AssetDatabase.GUIDToAssetPath(assetGuid); - Validate(assetGuid, $"asset:{assetPath}", obj, report); + Validate(assetGuid, assetPath, obj, report); } private static void ValidateGameObject(GameObject gameObject, string relativePath, Report report, bool initial) diff --git a/package.json b/package.json index cc7d0bb..aaedccf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "com.module.project-validator", - "version": "0.5.0", + "version": "0.6.0", "displayName": "Module.ProjectValidator", "description": "", "unity": "6000.3", From dd55a87740941201d13f2c4ac90bee71ae1bfb29 Mon Sep 17 00:00:00 2001 From: Anders Ejlersen Date: Sun, 24 May 2026 18:06:56 +0200 Subject: [PATCH 04/11] - Validator: Added asset validators with material texture and shader validation - Validator: Added option to enable/disable certain validators - Project Settings: Fixed issue, where changes weren't always saved - Unity: Removed deprecated warnings in Unity 6.4 --- .../EditorProjectValidatorHierarchy.cs | 15 ++- .../editor_project_validator_settings.png | Bin 0 -> 595 bytes ...editor_project_validator_settings.png.meta | 117 ++++++++++++++++++ Editor/Objects/Report.cs | 23 +++- Editor/Objects/TypeTree.cs | 13 +- Editor/Objects/ValidatorList.cs | 41 ++++++ Editor/Settings/ProjectValidatorSettings.cs | 83 +++++++++++-- Editor/Utilities/EditorAssetUtility.cs | 20 ++- Editor/Utilities/ProjectValidatorUtility.cs | 97 +++++++++++++++ Editor/ValidatorRunner.cs | 108 +++++++++++++--- Editor/Validators/Assets.meta | 3 + .../Assets/AssetValidatorMaterialShader.cs | 43 +++++++ .../AssetValidatorMaterialShader.cs.meta | 3 + .../Assets/AssetValidatorMaterialTexture.cs | 31 +++++ .../AssetValidatorMaterialTexture.cs.meta | 3 + .../Attributes/AttributeValidatorObsolete.cs | 12 ++ .../AttributeValidatorObsolete.cs.meta | 2 + .../GameObjectValidatorTransform.cs | 28 +++++ .../GameObjectValidatorTransform.cs.meta | 3 + Editor/Window/EditorProjectValidatorWindow.cs | 6 + Editor/Window/Objects.meta | 3 + ...orProjectValidatorEnabledPropertyDrawer.cs | 23 ++++ ...jectValidatorEnabledPropertyDrawer.cs.meta | 3 + ...StyleSheetEditorProjectValidatorWindow.uss | 13 ++ .../UxmlEditorProjectValidatorWindow.uxml | 1 + README.md | 45 ++++++- Runtime/Interfaces/IAssetValidator.cs | 10 ++ Runtime/Interfaces/IAssetValidator.cs.meta | 3 + package.json | 2 +- ~Images/editor-project-settings.png | Bin 0 -> 35163 bytes 30 files changed, 716 insertions(+), 38 deletions(-) create mode 100644 Editor/Icons/editor_project_validator_settings.png create mode 100644 Editor/Icons/editor_project_validator_settings.png.meta create mode 100644 Editor/Validators/Assets.meta create mode 100644 Editor/Validators/Assets/AssetValidatorMaterialShader.cs create mode 100644 Editor/Validators/Assets/AssetValidatorMaterialShader.cs.meta create mode 100644 Editor/Validators/Assets/AssetValidatorMaterialTexture.cs create mode 100644 Editor/Validators/Assets/AssetValidatorMaterialTexture.cs.meta create mode 100644 Editor/Validators/Attributes/AttributeValidatorObsolete.cs create mode 100644 Editor/Validators/Attributes/AttributeValidatorObsolete.cs.meta create mode 100644 Editor/Validators/GameObject/GameObjectValidatorTransform.cs create mode 100644 Editor/Validators/GameObject/GameObjectValidatorTransform.cs.meta create mode 100644 Editor/Window/Objects.meta create mode 100644 Editor/Window/Objects/EditorProjectValidatorEnabledPropertyDrawer.cs create mode 100644 Editor/Window/Objects/EditorProjectValidatorEnabledPropertyDrawer.cs.meta create mode 100644 Runtime/Interfaces/IAssetValidator.cs create mode 100644 Runtime/Interfaces/IAssetValidator.cs.meta create mode 100644 ~Images/editor-project-settings.png diff --git a/Editor/Hierarchy/EditorProjectValidatorHierarchy.cs b/Editor/Hierarchy/EditorProjectValidatorHierarchy.cs index a41dbc3..cacd52c 100644 --- a/Editor/Hierarchy/EditorProjectValidatorHierarchy.cs +++ b/Editor/Hierarchy/EditorProjectValidatorHierarchy.cs @@ -10,19 +10,32 @@ namespace Module.ProjectValidator.Editor { static EditorProjectValidatorHierarchy() { +#if UNITY_6000_4_OR_NEWER + EditorApplication.hierarchyWindowItemByEntityIdOnGUI -= OnHierarchyWindowItemByEntityIdOnGUI; + EditorApplication.hierarchyWindowItemByEntityIdOnGUI += OnHierarchyWindowItemByEntityIdOnGUI; +#else EditorApplication.hierarchyWindowItemOnGUI -= OnHierarchyWindowItemOnGUI; EditorApplication.hierarchyWindowItemOnGUI += OnHierarchyWindowItemOnGUI; +#endif EditorSceneManager.sceneOpened -= OnSceneOpened; EditorSceneManager.sceneOpened += OnSceneOpened; } +#if UNITY_6000_4_OR_NEWER + private static void OnHierarchyWindowItemByEntityIdOnGUI(EntityId entityId, Rect selectionRect) + { + if (Report.HasActive && Report.Active.TryGetSeverityFor(entityId, out var instance) && instance.Severity != EValidatorSeverity.Valid) + EditorIconUtility.Draw(new Rect(selectionRect.x, selectionRect.y, selectionRect.height, selectionRect.height), instance.Severity, instance.IsRedirect); + } +#else private static void OnHierarchyWindowItemOnGUI(int instanceID, Rect selectionRect) { if (Report.HasActive && Report.Active.TryGetSeverityFor(instanceID, out var instance) && instance.Severity != EValidatorSeverity.Valid) EditorIconUtility.Draw(new Rect(selectionRect.x, selectionRect.y, selectionRect.height, selectionRect.height), instance.Severity, instance.IsRedirect); } - +#endif + private static void OnSceneOpened(Scene scene, OpenSceneMode mode) { if (Report.HasActive && ProjectValidatorUtility.IsValidForRun()) diff --git a/Editor/Icons/editor_project_validator_settings.png b/Editor/Icons/editor_project_validator_settings.png new file mode 100644 index 0000000000000000000000000000000000000000..f938577b9a9acb7b4166b6f9d554303ba72d4792 GIT binary patch literal 595 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucLCF%=h?3y^w370~qEv=}#LT=BJwMkF1yemk zJwqd5M)wk+q8+Ibo@t(*S_~XO4l9EcBP#N%Y$7#-9wVF#;%fNjR%^H5D##Suk zTY=&aYeC(P48{k}FP=9|XN-DX%V5hOksOtso4@vL=L%V!`%$lLEratLey!n}949D{ z{D)}+H-lnJ@AtZQd*?5oV%D6he(Z;4`YYadtoA;dxxrr14D3$(h4=7C?Ay&`z`Q|h z?eaOFc@A{V%x|^Zo7qyF$N7MjVM@^HWtsP~&f6d4XSnUFG-2gbV8}8sc)I$ztaD0e F0st^2rsMzs literal 0 HcmV?d00001 diff --git a/Editor/Icons/editor_project_validator_settings.png.meta b/Editor/Icons/editor_project_validator_settings.png.meta new file mode 100644 index 0000000..524687d --- /dev/null +++ b/Editor/Icons/editor_project_validator_settings.png.meta @@ -0,0 +1,117 @@ +fileFormatVersion: 2 +guid: a6c61d5fbd310894d8159ba6af32d7e3 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/Objects/Report.cs b/Editor/Objects/Report.cs index aa6d136..278955a 100644 --- a/Editor/Objects/Report.cs +++ b/Editor/Objects/Report.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; -using UnityEditor; +using UnityEngine; + namespace Module.ProjectValidator.Editor { @@ -11,7 +12,12 @@ namespace Module.ProjectValidator.Editor public readonly List Entries = new(); private readonly Dictionary _assetToSeverityMapping = new(); + +#if UNITY_6000_4_OR_NEWER + private readonly Dictionary _instanceToSeverityMapping = new(); +#else private readonly Dictionary _instanceToSeverityMapping = new(); +#endif public void Add(GUID assetGuid, string relativePath, string fieldPath, Attribute attribute, EValidatorSeverity severity, string message) { @@ -58,13 +64,23 @@ namespace Module.ProjectValidator.Editor public bool TryGetSeverityFor(string guid, out MappingEntry mapping) { - if (GUID.TryParse(guid, out var assetGuid) && _assetToSeverityMapping.TryGetValue(assetGuid, out mapping)) + if (UnityEngine.GUID.TryParse(guid, out var assetGuid) && _assetToSeverityMapping.TryGetValue(assetGuid, out mapping)) return true; mapping = new MappingEntry(); return false; } - + +#if UNITY_6000_4_OR_NEWER + public bool TryGetSeverityFor(EntityId entityId, out MappingEntry mapping) + { + if (_instanceToSeverityMapping.TryGetValue(entityId, out mapping)) + return true; + + mapping = new MappingEntry(); + return false; + } +#else public bool TryGetSeverityFor(int instanceId, out MappingEntry mapping) { if (_instanceToSeverityMapping.TryGetValue(instanceId, out mapping)) @@ -73,6 +89,7 @@ namespace Module.ProjectValidator.Editor mapping = new MappingEntry(); return false; } +#endif public bool TryGetSeverityFor(GUID assetGuid, string relativePath, out MappingEntry mapping) { diff --git a/Editor/Objects/TypeTree.cs b/Editor/Objects/TypeTree.cs index 5b69e0c..4cddc30 100644 --- a/Editor/Objects/TypeTree.cs +++ b/Editor/Objects/TypeTree.cs @@ -31,9 +31,16 @@ namespace Module.ProjectValidator.Editor if (!IsFieldSerializable(fi)) continue; - var attributes = fi.GetCustomAttributes(); + var fieldAttributes = fi.GetCustomAttributes(); + var fieldTypeAttributes = fi.FieldType.GetCustomAttributes(); - foreach (var attribute in attributes) + foreach (var attribute in fieldAttributes) + { + if (validatorList.TryGetAttributeValidator(attribute.GetType(), out var validator)) + entry.AddField(fi, attribute, validator); + } + + foreach (var attribute in fieldTypeAttributes) { if (validatorList.TryGetAttributeValidator(attribute.GetType(), out var validator)) entry.AddField(fi, attribute, validator); @@ -164,7 +171,7 @@ namespace Module.ProjectValidator.Editor return Components == null && Fields == null && Entries == null; } } - + public sealed class ValidatorField { public readonly FieldInfo FieldInfo; diff --git a/Editor/Objects/ValidatorList.cs b/Editor/Objects/ValidatorList.cs index 0f498fa..39221ff 100644 --- a/Editor/Objects/ValidatorList.cs +++ b/Editor/Objects/ValidatorList.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Reflection; using System.Runtime.Serialization; using UnityEngine; @@ -11,6 +12,7 @@ namespace Module.ProjectValidator.Editor private readonly Dictionary _attributeValidators = new(); private readonly Dictionary> _componentValidators = new(); public readonly List GameObjectValidators = new(); + public readonly Dictionary> AssetValidators = new(); public void AddAttribute(Type type) { @@ -75,6 +77,33 @@ namespace Module.ProjectValidator.Editor Debug.LogException(e); } } + + public void AddAsset(Type type) + { + if (type.IsInterface || type.IsAbstract) + return; + + var typeValidator = type.GetInterfaces().FirstOrDefault(typeInterface => typeInterface.IsGenericType && typeInterface.GetGenericTypeDefinition() == typeof(IAssetValidator<>)); + var componentType = typeValidator?.GetGenericArguments()[0]; + + if (componentType == null) + return; + + try + { + var instance = FormatterServices.GetUninitializedObject(type); + var validator = new AssetValidator(instance); + + if (AssetValidators.TryGetValue(componentType, out var list)) + list.Add(validator); + else + AssetValidators.Add(componentType, new List { validator }); + } + catch (Exception e) + { + Debug.LogException(e); + } + } public bool TryGetAttributeValidator(Type type, out object validatorInstance) { @@ -85,5 +114,17 @@ namespace Module.ProjectValidator.Editor { return _componentValidators.TryGetValue(type, out validatorInstances); } + + public sealed class AssetValidator + { + public readonly object Validator; + public readonly MethodInfo ValidatorMethod; + + public AssetValidator(object validator) + { + Validator = validator; + ValidatorMethod = validator.GetType().GetMethod("Validate"); + } + } } } \ No newline at end of file diff --git a/Editor/Settings/ProjectValidatorSettings.cs b/Editor/Settings/ProjectValidatorSettings.cs index b526db7..7efb992 100644 --- a/Editor/Settings/ProjectValidatorSettings.cs +++ b/Editor/Settings/ProjectValidatorSettings.cs @@ -1,27 +1,35 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using UnityEditor; using UnityEngine; using UnityEngine.UIElements; using UnityEditor.UIElements; using UnityEditorInternal; +using UnityEngine.Pool; +using Object = UnityEngine.Object; namespace Module.ProjectValidator.Editor { internal sealed class ProjectValidatorSettings : ScriptableObject { public List assemblies = new(); - + public List validators = new(); + + public const string MenuPath = "Project/Project Validator"; private const string AssetPath = "ProjectSettings/ProjectValidatorSettings.asset"; private const string StyleSheetName = "StyleSheetProjectValidatorSettings"; internal static ProjectValidatorSettings GetOrCreate() { var objects = InternalEditorUtility.LoadSerializedFileAndForget(AssetPath); + ProjectValidatorSettings settings; if (objects.Length != 0) - return (ProjectValidatorSettings)objects[0]; + settings = (ProjectValidatorSettings)objects[0]; + else + settings = CreateInstance(); - var settings = CreateInstance(); + PopulateValidatorList(settings); InternalEditorUtility.SaveToSerializedFileAndForget(new Object[] { settings }, AssetPath, true); return settings; } @@ -29,7 +37,7 @@ namespace Module.ProjectValidator.Editor [SettingsProvider] public static SettingsProvider CreateProvider() { - return new SettingsProvider("Project/Project Validator", SettingsScope.Project) + return new SettingsProvider(MenuPath, SettingsScope.Project) { label = "Project Validator", activateHandler = (_, root) => @@ -37,16 +45,73 @@ namespace Module.ProjectValidator.Editor var settings = GetOrCreate(); var serializedObject = new SerializedObject(settings); var container = new VisualElement { style = { flexDirection = FlexDirection.Column } }; - var propertyField = new PropertyField(serializedObject.FindProperty("assemblies"), "Assemblies"); - propertyField.RegisterCallback>(_ => InternalEditorUtility.SaveToSerializedFileAndForget(new[] { serializedObject.targetObject }, AssetPath, true)); - propertyField.RegisterValueChangeCallback(_ => InternalEditorUtility.SaveToSerializedFileAndForget(new[] { serializedObject.targetObject }, AssetPath, true)); - container.Add(propertyField); + + var assemblyField = new PropertyField(serializedObject.FindProperty(nameof(assemblies)), "Assemblies"); + container.Add(assemblyField); + + var enabledField = new PropertyField(serializedObject.FindProperty(nameof(validators)), "Validators"); + container.Add(enabledField); + root.Add(container); root.Bind(serializedObject); + root.RegisterCallback(_ => InternalEditorUtility.SaveToSerializedFileAndForget(new[] { serializedObject.targetObject }, AssetPath, true)); + root.RegisterCallback(_ => InternalEditorUtility.SaveToSerializedFileAndForget(new[] { serializedObject.targetObject }, AssetPath, true)); root.styleSheets.Add(EditorAssetUtility.LoadFirstAsset(StyleSheetName)); }, keywords = new HashSet(new[] { "Project", "Validator", "Assemblies" }) }; } + + private static void PopulateValidatorList(ProjectValidatorSettings settings) + { + using var pool0 = ListPool.Get(out var list); + using var pool1 = ListPool.Get(out var temp); + + FetchValidatorsOfType(typeof(IAssetValidator<>), list); + FetchValidatorsOfType(typeof(IAttributeValidator<>), list); + FetchValidatorsOfType(typeof(IComponentValidator<>), list); + FetchValidatorsOfType(typeof(IGameObjectValidator), list); + + for (var i = 0; i < settings.validators.Count; i++) + { + temp.Add(settings.validators[i].type); + } + + for (var i = 0; i < list.Count; i++) + { + if (!temp.Contains(list[i])) + settings.validators.Add(new ValidatorEnabled(list[i], true)); + } + + for (var i = temp.Count - 1; i >= 0; i--) + { + if (!list.Contains(temp[i])) + settings.validators.RemoveAt(i); + } + } + + private static void FetchValidatorsOfType(Type type, List typeNames) + { + var types = TypeCache.GetTypesDerivedFrom(type); + + for (var i = 0; i < types.Count; i++) + { + if (!types[i].IsInterface && !types[i].IsAbstract) + typeNames.Add(types[i].FullName); + } + } + + [Serializable] + public sealed class ValidatorEnabled + { + public string type; + public bool enabled; + + public ValidatorEnabled(string type, bool enabled) + { + this.type = type; + this.enabled = enabled; + } + } } } \ No newline at end of file diff --git a/Editor/Utilities/EditorAssetUtility.cs b/Editor/Utilities/EditorAssetUtility.cs index be7796a..e3c0ea4 100644 --- a/Editor/Utilities/EditorAssetUtility.cs +++ b/Editor/Utilities/EditorAssetUtility.cs @@ -1,7 +1,9 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.IO; using UnityEditor; using UnityEngine; +using Object = UnityEngine.Object; namespace Module.ProjectValidator.Editor { @@ -29,6 +31,22 @@ namespace Module.ProjectValidator.Editor return list.ToArray(); } + public static Object[] LoadAllAssets(Type type) + { + var guids = AssetDatabase.FindAssetGUIDs($"a:assets t:{type.Name}"); + var list = new List(guids.Length); + + foreach (var guid in guids) + { + var asset = AssetDatabase.LoadAssetByGUID(guid, type); + + if (asset != null) + list.Add(asset); + } + + return list.ToArray(); + } + internal static GUID GetAssetGuid(Object obj) { var assetPath = string.Empty; diff --git a/Editor/Utilities/ProjectValidatorUtility.cs b/Editor/Utilities/ProjectValidatorUtility.cs index f9f520c..10d6eef 100644 --- a/Editor/Utilities/ProjectValidatorUtility.cs +++ b/Editor/Utilities/ProjectValidatorUtility.cs @@ -37,6 +37,14 @@ namespace Module.ProjectValidator.Editor window.titleContent = new GUIContent("Project Validator"); return window; } + + public static string GetAssetValidatorName(object validator) + { + var str = validator.GetType().Name; + str = str.Replace("AssetValidator", string.Empty); + str = ObjectNames.NicifyVariableName(str); + return str; + } internal static string GetGameObjectValidatorName(IGameObjectValidator validator) { @@ -196,6 +204,93 @@ namespace Module.ProjectValidator.Editor } } +#if UNITY_6000_4_OR_NEWER + internal static void RebuildSceneInstanceMapping(Report report, Dictionary dictMapping) + { + dictMapping.Clear(); + using var _ = ListPool.Get(out var rootObjects); + + for (var i = 0; i < SceneManager.sceneCount; i++) + { + var scene = SceneManager.GetSceneAt(i); + + if (!scene.isLoaded) + continue; + + var strAssetGuid = AssetDatabase.AssetPathToGUID(scene.path); + GUID.TryParse(strAssetGuid, out var assetGuid); + scene.GetRootGameObjects(rootObjects); + + for (var j = 0; j < rootObjects.Count; j++) + { + var rootObject = rootObjects[j]; + var relativePath = string.Empty; + RebuildSceneInstanceMapping(report, dictMapping, rootObject, assetGuid, relativePath, true); + } + } + + RebuildForAllParents(dictMapping); + } + + + private static void RebuildSceneInstanceMapping(Report report, Dictionary dictMapping, GameObject gameObject, GUID assetGuid, string relativePath, bool initial) + { + var transform = gameObject.transform; + AppendToRelativePath(gameObject, ref relativePath, initial); + + if (report.TryGetSeverityFor(assetGuid, relativePath, out var mapping)) + dictMapping.Add(gameObject.GetEntityId(), new Report.MappingEntry(mapping.Severity, false)); + + for (var i = 0; i < transform.childCount; i++) + { + RebuildSceneInstanceMapping(report, dictMapping, transform.GetChild(i).gameObject, assetGuid, relativePath, false); + } + } + + private static void RebuildForAllParents(Dictionary dictMapping) + { + using var _ = DictionaryPool.Get(out var newMappings); + + foreach (var pair in dictMapping) + { + var obj = EditorUtility.EntityIdToObject(pair.Key); + + if (obj is not GameObject gameObject) + continue; + + var severity = pair.Value.Severity; + var transform = gameObject.transform.parent; + + while (transform != null) + { + gameObject = transform.gameObject; + var entityId = gameObject.GetEntityId(); + + if (dictMapping.TryGetValue(entityId, out var parentMapping)) + { + if (severity < parentMapping.Severity) + severity = parentMapping.Severity; + } + else if (newMappings.TryGetValue(entityId, out var currentMapping)) + { + if (currentMapping.Severity < severity) + newMappings[entityId] = new Report.MappingEntry(severity, true); + } + else + { + newMappings.Add(entityId, new Report.MappingEntry(severity, true)); + } + + transform = transform.parent; + } + } + + foreach (var pair in newMappings) + { + dictMapping.Add(pair.Key, pair.Value); + } + } +#else internal static void RebuildSceneInstanceMapping(Report report, Dictionary dictMapping) { dictMapping.Clear(); @@ -223,6 +318,7 @@ namespace Module.ProjectValidator.Editor RebuildForAllParents(dictMapping); } + private static void RebuildSceneInstanceMapping(Report report, Dictionary dictMapping, GameObject gameObject, GUID assetGuid, string relativePath, bool initial) { var transform = gameObject.transform; @@ -280,6 +376,7 @@ namespace Module.ProjectValidator.Editor dictMapping.Add(pair.Key, pair.Value); } } +#endif internal static void RefreshUnityWindows() { diff --git a/Editor/ValidatorRunner.cs b/Editor/ValidatorRunner.cs index 3cbfa63..54716f5 100644 --- a/Editor/ValidatorRunner.cs +++ b/Editor/ValidatorRunner.cs @@ -13,7 +13,6 @@ namespace Module.ProjectValidator.Editor { internal static class ValidatorRunner { - private static bool _initialized; private static ValidatorList _validatorList; private static TypeTree _typeTree; @@ -56,21 +55,19 @@ namespace Module.ProjectValidator.Editor private static void Initialize() { - if (_initialized) - return; - var settings = ProjectValidatorSettings.GetOrCreate(); var assemblies = GetAssembliesFrom(settings); - + var enabled = GetEnabledValidators(settings); + _validatorList = new ValidatorList(); _typeTree = new TypeTree(); - FetchAllGameObjectValidators(); - FetchAllComponentValidators(); - FetchAllAttributeValidators(); + FetchAllGameObjectValidators(enabled); + FetchAllComponentValidators(enabled); + FetchAllAttributeValidators(enabled); + FetchAllAssetValidators(enabled); FetchAllTypesWithValidators(assemblies); FetchAllTypesWithValidators(assemblies); - _initialized = true; } private static Assembly[] GetAssembliesFrom(ProjectValidatorSettings settings) @@ -93,33 +90,72 @@ namespace Module.ProjectValidator.Editor return assemblies.ToArray(); } - private static void FetchAllAttributeValidators() + private static HashSet GetEnabledValidators(ProjectValidatorSettings settings) + { + var enabled = new HashSet(settings.validators.Count); + + for (var i = 0; i < settings.validators.Count; i++) + { + try + { + if (!settings.validators[i].enabled) + continue; + + var type = Type.GetType(settings.validators[i].type); + + if (type != null) + enabled.Add(type); + } + catch (Exception e) + { + Debug.LogException(e); + } + } + + return enabled; + } + + private static void FetchAllAttributeValidators(HashSet enabled) { var types = TypeCache.GetTypesDerivedFrom(typeof(IAttributeValidator<>)); for (var i = 0; i < types.Count; i++) { - _validatorList.AddAttribute(types[i]); + if (enabled.Contains(types[i])) + _validatorList.AddAttribute(types[i]); } } - private static void FetchAllGameObjectValidators() + private static void FetchAllGameObjectValidators(HashSet enabled) { var types = TypeCache.GetTypesDerivedFrom(typeof(IGameObjectValidator)); for (var i = 0; i < types.Count; i++) { - _validatorList.AddGameObject(types[i]); + if (enabled.Contains(types[i])) + _validatorList.AddGameObject(types[i]); } } - private static void FetchAllComponentValidators() + private static void FetchAllComponentValidators(HashSet enabled) { var types = TypeCache.GetTypesDerivedFrom(typeof(IComponentValidator<>)); for (var i = 0; i < types.Count; i++) { - _validatorList.AddComponent(types[i]); + if (enabled.Contains(types[i])) + _validatorList.AddComponent(types[i]); + } + } + + private static void FetchAllAssetValidators(HashSet enabled) + { + var types = TypeCache.GetTypesDerivedFrom(typeof(IAssetValidator<>)); + + for (var i = 0; i < types.Count; i++) + { + if (enabled.Contains(types[i])) + _validatorList.AddAsset(types[i]); } } @@ -172,6 +208,25 @@ namespace Module.ProjectValidator.Editor private static void ValidateAllAssets(Report report) { ValidateAssetsBytype(report); + + foreach (var pair in _validatorList.AssetValidators) + { + var assets = EditorAssetUtility.LoadAllAssets(pair.Key); + + for (var i = 0; i < assets.Length; i++) + { + try + { + var assetPath = AssetDatabase.GetAssetPath(assets[i]); + var assetGuid = AssetDatabase.GUIDFromAssetPath(assetPath); + ValidateAsset(assets[i], assetGuid, assetPath, pair.Value, report); + } + catch (Exception e) + { + Debug.LogException(e); + } + } + } } private static void ValidateAllPrefabs(Report report) @@ -253,6 +308,29 @@ namespace Module.ProjectValidator.Editor Validate(assetGuid, relativePath, components[i], report); } } + + private static void ValidateAsset(UnityEngine.Object obj, GUID assetGuid, string relativePath, List validators, Report report) + { + using var _ = ListPool.Get(out var results); + + for (var i = 0; i < validators.Count; i++) + { + results.Clear(); + var validator = validators[i]; + validator.ValidatorMethod.Invoke(validator.Validator, new object[] { obj, results }); + + for (var j = 0; j < results.Count; j++) + { + var result = results[j]; + + if (result.Severity == EValidatorSeverity.Valid) + continue; + + var validatorName = ProjectValidatorUtility.GetAssetValidatorName(validator.Validator); + report.Add(assetGuid, relativePath, string.Empty, validatorName, result.Severity, result.Message); + } + } + } private static void ValidateChildren(GameObject gameObject, string relativePath, Report report) { diff --git a/Editor/Validators/Assets.meta b/Editor/Validators/Assets.meta new file mode 100644 index 0000000..a1c08b2 --- /dev/null +++ b/Editor/Validators/Assets.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ddbf30cd5a674751be0c125c1f4e917b +timeCreated: 1779623970 \ No newline at end of file diff --git a/Editor/Validators/Assets/AssetValidatorMaterialShader.cs b/Editor/Validators/Assets/AssetValidatorMaterialShader.cs new file mode 100644 index 0000000..6a0dfce --- /dev/null +++ b/Editor/Validators/Assets/AssetValidatorMaterialShader.cs @@ -0,0 +1,43 @@ +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; +using UnityEngine.Rendering; + +namespace Module.ProjectValidator.Editor +{ + internal sealed class AssetValidatorMaterialShader : IAssetValidator + { + public void Validate(Material obj, List results) + { + if (obj.shader == null) + results.Add(ValidatorResult.Create(EValidatorSeverity.Error, "Shader is Null")); + else if (!IsCompatible(obj.shader)) + results.Add(ValidatorResult.Create(EValidatorSeverity.Warning, $"Shader '{obj.shader.name}' is not compatible with render pipeline")); + else if (!obj.shader.isSupported) + results.Add(ValidatorResult.Create(EValidatorSeverity.Warning, $"Shader '{obj.shader.name}' is not supported")); + else if (ShaderUtil.ShaderHasError(obj.shader)) + results.Add(ValidatorResult.Create(EValidatorSeverity.Error, $"Shader '{obj.shader.name}' has compile errors")); + } + + private static bool IsCompatible(Shader shader) + { + var pipeline = GraphicsSettings.currentRenderPipeline; + + if (pipeline == null) + return true; + + var tagSearch = new ShaderTagId("RenderPipeline"); + var tagPipeline = new ShaderTagId(pipeline.renderPipelineShaderTag); + + for (var i = 0; i < shader.passCount; i++) + { + var tagPass = shader.FindPassTagValue(i, tagSearch); + + if (tagPass == tagPipeline) + return true; + } + + return false; + } + } +} \ No newline at end of file diff --git a/Editor/Validators/Assets/AssetValidatorMaterialShader.cs.meta b/Editor/Validators/Assets/AssetValidatorMaterialShader.cs.meta new file mode 100644 index 0000000..a1eceb1 --- /dev/null +++ b/Editor/Validators/Assets/AssetValidatorMaterialShader.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 2218d247daff44bf84629756b63ea650 +timeCreated: 1779623986 \ No newline at end of file diff --git a/Editor/Validators/Assets/AssetValidatorMaterialTexture.cs b/Editor/Validators/Assets/AssetValidatorMaterialTexture.cs new file mode 100644 index 0000000..9f07b96 --- /dev/null +++ b/Editor/Validators/Assets/AssetValidatorMaterialTexture.cs @@ -0,0 +1,31 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Rendering; + +namespace Module.ProjectValidator.Editor +{ + internal sealed class AssetValidatorMaterialTexture : IAssetValidator + { + public void Validate(Material obj, List results) + { + if (obj.shader == null) + return; + + var count = obj.shader.GetPropertyCount(); + + for (var i = 0; i < count; i++) + { + var propertyType = obj.shader.GetPropertyType(i); + + if (propertyType != ShaderPropertyType.Texture) + continue; + + var propertyName = obj.shader.GetPropertyName(i); + var propertyValue = obj.GetTexture(propertyName); + + if (propertyValue == null) + results.Add(ValidatorResult.Create(EValidatorSeverity.Warning, $"Texture property '{propertyName}' is Null")); + } + } + } +} \ No newline at end of file diff --git a/Editor/Validators/Assets/AssetValidatorMaterialTexture.cs.meta b/Editor/Validators/Assets/AssetValidatorMaterialTexture.cs.meta new file mode 100644 index 0000000..d975053 --- /dev/null +++ b/Editor/Validators/Assets/AssetValidatorMaterialTexture.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: cfeb4b29a9cd4ea79c1e9325b8122e17 +timeCreated: 1779627240 \ No newline at end of file diff --git a/Editor/Validators/Attributes/AttributeValidatorObsolete.cs b/Editor/Validators/Attributes/AttributeValidatorObsolete.cs new file mode 100644 index 0000000..0eb3c19 --- /dev/null +++ b/Editor/Validators/Attributes/AttributeValidatorObsolete.cs @@ -0,0 +1,12 @@ +using System; + +namespace Module.ProjectValidator.Editor +{ + internal sealed class AttributeValidatorObsolete : IAttributeValidator + { + public ValidatorResult Validate(ObsoleteAttribute attribute, object value) + { + return ValidatorResult.Create(EValidatorSeverity.Error, "Obsolete"); + } + } +} \ No newline at end of file diff --git a/Editor/Validators/Attributes/AttributeValidatorObsolete.cs.meta b/Editor/Validators/Attributes/AttributeValidatorObsolete.cs.meta new file mode 100644 index 0000000..2a54b7b --- /dev/null +++ b/Editor/Validators/Attributes/AttributeValidatorObsolete.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 982ac4e898cc2ca438e98a2f0034a8d3 \ No newline at end of file diff --git a/Editor/Validators/GameObject/GameObjectValidatorTransform.cs b/Editor/Validators/GameObject/GameObjectValidatorTransform.cs new file mode 100644 index 0000000..58b6f92 --- /dev/null +++ b/Editor/Validators/GameObject/GameObjectValidatorTransform.cs @@ -0,0 +1,28 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace Module.ProjectValidator.Editor +{ + internal sealed class GameObjectValidatorTransform : IGameObjectValidator + { + public void Validate(GameObject gameObject, List results) + { + var transform = gameObject.transform; + var lp = transform.localPosition; + var lr = transform.localRotation; + var ls = transform.localScale; + + if (IsInvalid(lp.x) || IsInvalid(lp.y) || IsInvalid(lp.z)) + results.Add(ValidatorResult.Create(EValidatorSeverity.Error, $"Local position '{lp}' is invalid")); + if (IsInvalid(lr.x) || IsInvalid(lr.y) || IsInvalid(lr.z) || IsInvalid(lr.w)) + results.Add(ValidatorResult.Create(EValidatorSeverity.Error, $"Local rotation '{lr}' is invalid")); + if (IsInvalid(ls.x) || IsInvalid(ls.y) || IsInvalid(ls.z)) + results.Add(ValidatorResult.Create(EValidatorSeverity.Error, $"Local scale '{ls}' is invalid")); + } + + private static bool IsInvalid(float value) + { + return float.IsNaN(value) || float.IsInfinity(value); + } + } +} \ No newline at end of file diff --git a/Editor/Validators/GameObject/GameObjectValidatorTransform.cs.meta b/Editor/Validators/GameObject/GameObjectValidatorTransform.cs.meta new file mode 100644 index 0000000..89d7bda --- /dev/null +++ b/Editor/Validators/GameObject/GameObjectValidatorTransform.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 727d5de59b004deb8c192337bcee132e +timeCreated: 1779628852 \ No newline at end of file diff --git a/Editor/Window/EditorProjectValidatorWindow.cs b/Editor/Window/EditorProjectValidatorWindow.cs index 4989d7d..7966bc8 100644 --- a/Editor/Window/EditorProjectValidatorWindow.cs +++ b/Editor/Window/EditorProjectValidatorWindow.cs @@ -24,6 +24,7 @@ namespace Module.ProjectValidator.Editor root.Q("button-run").clicked += OnToolbarButtonRunClicked; root.Q("button-clear").clicked += OnToolbarButtonClearClicked; root.Q().RegisterValueChangedCallback(OnToolbarSearchFieldChanged); + root.Q("button-settings").clicked += OnToolbarButtonSettingsClicked; _treeView = root.Q(); _treeView.columns["asset"].makeCell = CreateObjectField; @@ -126,6 +127,11 @@ namespace Module.ProjectValidator.Editor ValidatorRunner.Clear(); } + private void OnToolbarButtonSettingsClicked() + { + SettingsService.OpenProjectSettings(ProjectValidatorSettings.MenuPath); + } + private void OnToolbarSearchFieldChanged(ChangeEvent evt) { _searchFilter = evt.newValue; diff --git a/Editor/Window/Objects.meta b/Editor/Window/Objects.meta new file mode 100644 index 0000000..b0b5e82 --- /dev/null +++ b/Editor/Window/Objects.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: a22633e08b3d4c0fbbea654a8a8cd287 +timeCreated: 1779637991 \ No newline at end of file diff --git a/Editor/Window/Objects/EditorProjectValidatorEnabledPropertyDrawer.cs b/Editor/Window/Objects/EditorProjectValidatorEnabledPropertyDrawer.cs new file mode 100644 index 0000000..1bb94fa --- /dev/null +++ b/Editor/Window/Objects/EditorProjectValidatorEnabledPropertyDrawer.cs @@ -0,0 +1,23 @@ +using UnityEditor; +using UnityEditor.UIElements; +using UnityEngine.UIElements; + +namespace Module.ProjectValidator.Editor +{ + [CustomPropertyDrawer(typeof(ProjectValidatorSettings.ValidatorEnabled))] + internal sealed class EditorProjectValidatorEnabledPropertyDrawer : PropertyDrawer + { + public override VisualElement CreatePropertyGUI(SerializedProperty property) + { + var spType = property.FindPropertyRelative(nameof(ProjectValidatorSettings.ValidatorEnabled.type)); + var spEnabled = property.FindPropertyRelative(nameof(ProjectValidatorSettings.ValidatorEnabled.enabled)); + + var root = new VisualElement { style = { flexDirection = FlexDirection.Row } }; + var veType = new PropertyField(spType, string.Empty) { style = { flexGrow = 1f } }; + var veEnabled = new PropertyField(spEnabled, string.Empty); + root.Add(veEnabled); + root.Add(veType); + return root; + } + } +} \ No newline at end of file diff --git a/Editor/Window/Objects/EditorProjectValidatorEnabledPropertyDrawer.cs.meta b/Editor/Window/Objects/EditorProjectValidatorEnabledPropertyDrawer.cs.meta new file mode 100644 index 0000000..25b5872 --- /dev/null +++ b/Editor/Window/Objects/EditorProjectValidatorEnabledPropertyDrawer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: e6c8cb829f514028b705bf121373c67c +timeCreated: 1779638011 \ No newline at end of file diff --git a/Editor/Window/Uxml/StyleSheetEditorProjectValidatorWindow.uss b/Editor/Window/Uxml/StyleSheetEditorProjectValidatorWindow.uss index 18612b5..ab2bb00 100644 --- a/Editor/Window/Uxml/StyleSheetEditorProjectValidatorWindow.uss +++ b/Editor/Window/Uxml/StyleSheetEditorProjectValidatorWindow.uss @@ -17,3 +17,16 @@ } + +.toolbar-button-settings { + width: 24px; + min-width: 24px; + max-width: 24px; + padding-top: 0; + padding-right: 0; + padding-bottom: 0; + padding-left: 0; + background-image: url("project://database/Packages/com.module.project-validator/Editor/Icons/editor_project_validator_settings.png?fileID=2800000&guid=a6c61d5fbd310894d8159ba6af32d7e3&type=3#editor_project_validator_settings"); + -unity-background-scale-mode: scale-to-fit; + margin-left: 0; +} diff --git a/Editor/Window/Uxml/UxmlEditorProjectValidatorWindow.uxml b/Editor/Window/Uxml/UxmlEditorProjectValidatorWindow.uxml index f06f29c..2d1b0d0 100644 --- a/Editor/Window/Uxml/UxmlEditorProjectValidatorWindow.uxml +++ b/Editor/Window/Uxml/UxmlEditorProjectValidatorWindow.uxml @@ -4,6 +4,7 @@ + diff --git a/README.md b/README.md index 5690ed5..c4d1feb 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,50 @@ # Description -A tool to help validate data across scenes, prefabs and scriptable objects. +A tool to help validate data across scenes, prefabs, scriptable objects and assets. ![Editor Window](~Images/editor-window.png) -### Unity Windows +## Unity Windows ![Hierachy Window](~Images/editor-hierarchy-window.png) ![Project Window](~Images/editor-project-window.png) -## Game Object Validators +## Settings +![Project Settings](~Images/editor-project-settings.png) + + +## Validators + +### Asset Validators + +```csharp +public sealed class AssetValidatorMaterialTexture : IAssetValidator +{ + public void Validate(Material obj, List results) + { + if (obj.shader == null) + return; + + var count = obj.shader.GetPropertyCount(); + + for (var i = 0; i < count; i++) + { + var propertyType = obj.shader.GetPropertyType(i); + + if (propertyType != ShaderPropertyType.Texture) + continue; + + var propertyName = obj.shader.GetPropertyName(i); + var propertyValue = obj.GetTexture(propertyName); + + if (propertyValue == null) + results.Add(ValidatorResult.Create(EValidatorSeverity.Warning, $"Texture property '{propertyName}' is Null")); + } + } +} +``` + +### Game Object Validators ```csharp public sealed class GameObjectValidatorBrokenPrefab : IGameObjectValidator @@ -22,7 +57,7 @@ public sealed class GameObjectValidatorBrokenPrefab : IGameObjectValidator } ``` -## Component Validators +### Component Validators ```csharp public sealed class ComponentValidatorMeshCollider : IComponentValidator @@ -35,7 +70,7 @@ public sealed class ComponentValidatorMeshCollider : IComponentValidator where T : Object + { + void Validate(T obj, List results); + } +} \ No newline at end of file diff --git a/Runtime/Interfaces/IAssetValidator.cs.meta b/Runtime/Interfaces/IAssetValidator.cs.meta new file mode 100644 index 0000000..bf826d7 --- /dev/null +++ b/Runtime/Interfaces/IAssetValidator.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 24ee414b7fa14a368a48cab1b608ee3b +timeCreated: 1779624012 \ No newline at end of file diff --git a/package.json b/package.json index aaedccf..84141fb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "com.module.project-validator", - "version": "0.6.0", + "version": "1.0.0", "displayName": "Module.ProjectValidator", "description": "", "unity": "6000.3", diff --git a/~Images/editor-project-settings.png b/~Images/editor-project-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..00da999ce4e07147939ef81ac8ebb4f510c4d570 GIT binary patch literal 35163 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 U!Y;CMD8P^Wa}}9VDbx4=7h{=#i2wiq literal 0 HcmV?d00001 From ddb4fc25eaf2926d7f7714222e6579003bc7109c Mon Sep 17 00:00:00 2001 From: Anders Ejlersen Date: Sun, 24 May 2026 18:09:03 +0200 Subject: [PATCH 05/11] Documentation: Updated editor window --- ~Images/editor-window.png | Bin 157463 -> 158128 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/~Images/editor-window.png b/~Images/editor-window.png index 386ec41fd5ec999b12ecb6fa2cfd7b438b7c718d..f9010bd11a84e8e7bf76a60542fd912ca56345d6 100644 GIT binary patch literal 158128 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

oh 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 literal 157463 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

+cdnm3c`|KTDjT#vd|ldrk{fF^ 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 I8#@R6KjvlJ<^TWy From 58acb2979dd07c930417cc7bac7d2615e2b5f263 Mon Sep 17 00:00:00 2001 From: Anders Ejlersen Date: Sun, 24 May 2026 23:09:47 +0200 Subject: [PATCH 06/11] Fixed issue, where the validator enabled state couldn't be loaded correctly, if in another assembly --- Editor/Settings/ProjectValidatorSettings.cs | 21 ++-- Editor/ValidatorRunner.cs | 2 +- ...orProjectValidatorEnabledPropertyDrawer.cs | 4 +- package.json | 2 +- ~Images/editor-project-settings.png.meta | 117 ++++++++++++++++++ 5 files changed, 135 insertions(+), 11 deletions(-) create mode 100644 ~Images/editor-project-settings.png.meta diff --git a/Editor/Settings/ProjectValidatorSettings.cs b/Editor/Settings/ProjectValidatorSettings.cs index 7efb992..ec2893f 100644 --- a/Editor/Settings/ProjectValidatorSettings.cs +++ b/Editor/Settings/ProjectValidatorSettings.cs @@ -13,6 +13,7 @@ namespace Module.ProjectValidator.Editor internal sealed class ProjectValidatorSettings : ScriptableObject { public List assemblies = new(); + [NonReorderable] public List validators = new(); public const string MenuPath = "Project/Project Validator"; @@ -74,13 +75,17 @@ namespace Module.ProjectValidator.Editor for (var i = 0; i < settings.validators.Count; i++) { - temp.Add(settings.validators[i].type); + temp.Add(settings.validators[i].assemblyQualifiedName); } for (var i = 0; i < list.Count; i++) { - if (!temp.Contains(list[i])) - settings.validators.Add(new ValidatorEnabled(list[i], true)); + if (temp.Contains(list[i])) + continue; + + var type = Type.GetType(list[i]); + var name = type != null ? type.Name : "Unknown Type"; + settings.validators.Add(new ValidatorEnabled(name, list[i], true)); } for (var i = temp.Count - 1; i >= 0; i--) @@ -97,19 +102,21 @@ namespace Module.ProjectValidator.Editor for (var i = 0; i < types.Count; i++) { if (!types[i].IsInterface && !types[i].IsAbstract) - typeNames.Add(types[i].FullName); + typeNames.Add(types[i].AssemblyQualifiedName); } } [Serializable] public sealed class ValidatorEnabled { - public string type; + public string name; + public string assemblyQualifiedName; public bool enabled; - public ValidatorEnabled(string type, bool enabled) + public ValidatorEnabled(string name, string assemblyQualifiedName, bool enabled) { - this.type = type; + this.name = name; + this.assemblyQualifiedName = assemblyQualifiedName; this.enabled = enabled; } } diff --git a/Editor/ValidatorRunner.cs b/Editor/ValidatorRunner.cs index 54716f5..5314e60 100644 --- a/Editor/ValidatorRunner.cs +++ b/Editor/ValidatorRunner.cs @@ -101,7 +101,7 @@ namespace Module.ProjectValidator.Editor if (!settings.validators[i].enabled) continue; - var type = Type.GetType(settings.validators[i].type); + var type = Type.GetType(settings.validators[i].assemblyQualifiedName); if (type != null) enabled.Add(type); diff --git a/Editor/Window/Objects/EditorProjectValidatorEnabledPropertyDrawer.cs b/Editor/Window/Objects/EditorProjectValidatorEnabledPropertyDrawer.cs index 1bb94fa..5953856 100644 --- a/Editor/Window/Objects/EditorProjectValidatorEnabledPropertyDrawer.cs +++ b/Editor/Window/Objects/EditorProjectValidatorEnabledPropertyDrawer.cs @@ -9,11 +9,11 @@ namespace Module.ProjectValidator.Editor { public override VisualElement CreatePropertyGUI(SerializedProperty property) { - var spType = property.FindPropertyRelative(nameof(ProjectValidatorSettings.ValidatorEnabled.type)); + var spType = property.FindPropertyRelative(nameof(ProjectValidatorSettings.ValidatorEnabled.name)); var spEnabled = property.FindPropertyRelative(nameof(ProjectValidatorSettings.ValidatorEnabled.enabled)); var root = new VisualElement { style = { flexDirection = FlexDirection.Row } }; - var veType = new PropertyField(spType, string.Empty) { style = { flexGrow = 1f } }; + var veType = new PropertyField(spType, string.Empty) { style = { flexGrow = 1f }, enabledSelf = false }; var veEnabled = new PropertyField(spEnabled, string.Empty); root.Add(veEnabled); root.Add(veType); diff --git a/package.json b/package.json index 84141fb..78774aa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "com.module.project-validator", - "version": "1.0.0", + "version": "1.0.1", "displayName": "Module.ProjectValidator", "description": "", "unity": "6000.3", diff --git a/~Images/editor-project-settings.png.meta b/~Images/editor-project-settings.png.meta new file mode 100644 index 0000000..fc97517 --- /dev/null +++ b/~Images/editor-project-settings.png.meta @@ -0,0 +1,117 @@ +fileFormatVersion: 2 +guid: 094f9567dcf756b468ea41cd471b65d7 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: From 2ec61871c276411f483138eaa83d1b5a563b7b9c Mon Sep 17 00:00:00 2001 From: Anders Ejlersen Date: Tue, 26 May 2026 18:05:38 +0200 Subject: [PATCH 07/11] Fixed issue, where GUID was moved between Unity versions from UnityEditor (6.3) to UnityEngine (6.4) --- Editor/Objects/Report.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Editor/Objects/Report.cs b/Editor/Objects/Report.cs index 278955a..5b68f9f 100644 --- a/Editor/Objects/Report.cs +++ b/Editor/Objects/Report.cs @@ -1,8 +1,8 @@ using System; using System.Collections.Generic; +using UnityEditor; using UnityEngine; - namespace Module.ProjectValidator.Editor { internal sealed class Report @@ -64,7 +64,7 @@ namespace Module.ProjectValidator.Editor public bool TryGetSeverityFor(string guid, out MappingEntry mapping) { - if (UnityEngine.GUID.TryParse(guid, out var assetGuid) && _assetToSeverityMapping.TryGetValue(assetGuid, out mapping)) + if (GUID.TryParse(guid, out var assetGuid) && _assetToSeverityMapping.TryGetValue(assetGuid, out mapping)) return true; mapping = new MappingEntry(); From ed3c02a0aa015df6ab5ef25828d1c210e05442cf Mon Sep 17 00:00:00 2001 From: Anders Ejlersen Date: Tue, 26 May 2026 18:05:54 +0200 Subject: [PATCH 08/11] Bumped version to 1.0.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 78774aa..567acfb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "com.module.project-validator", - "version": "1.0.1", + "version": "1.0.2", "displayName": "Module.ProjectValidator", "description": "", "unity": "6000.3", From 3802ca557c56ddc776bcb03e652fc132f7ca9fd6 Mon Sep 17 00:00:00 2001 From: Anders Ejlersen Date: Wed, 27 May 2026 19:17:55 +0200 Subject: [PATCH 09/11] Validator: Duplicate component validator is now only run on types without DisallowMultipleComponent attribute --- .../GameObjectValidatorDuplicateComponents.cs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Editor/Validators/GameObject/GameObjectValidatorDuplicateComponents.cs b/Editor/Validators/GameObject/GameObjectValidatorDuplicateComponents.cs index 1ea0509..eaf89a1 100644 --- a/Editor/Validators/GameObject/GameObjectValidatorDuplicateComponents.cs +++ b/Editor/Validators/GameObject/GameObjectValidatorDuplicateComponents.cs @@ -1,4 +1,6 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; +using System.Reflection; using UnityEngine; using UnityEngine.Pool; @@ -28,7 +30,7 @@ namespace Module.ProjectValidator.Editor } else { - if (count > 1) + if (count > 1 && IsMultipleComponentsAllowed(type)) results.Add(ValidatorResult.Create(EValidatorSeverity.Warning, $"GameObject has duplicate '{type.Name}' ({count}) components")); type = t; @@ -36,8 +38,13 @@ namespace Module.ProjectValidator.Editor } } - if (count > 1) + if (count > 1 && IsMultipleComponentsAllowed(type)) results.Add(ValidatorResult.Create(EValidatorSeverity.Warning, $"GameObject has duplicate '{type.Name}' ({count}) components")); } + + private static bool IsMultipleComponentsAllowed(Type type) + { + return type.GetCustomAttribute(true) == null; + } } } \ No newline at end of file From 9dd45f536e3e1715833d5f3cf416f3a81acf557a Mon Sep 17 00:00:00 2001 From: Anders Ejlersen Date: Wed, 27 May 2026 19:24:07 +0200 Subject: [PATCH 10/11] Validator: Fixed issue, where scene wouldn't unload, if an exception is thrown --- Editor/ValidatorRunner.cs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Editor/ValidatorRunner.cs b/Editor/ValidatorRunner.cs index 5314e60..c99415c 100644 --- a/Editor/ValidatorRunner.cs +++ b/Editor/ValidatorRunner.cs @@ -179,12 +179,12 @@ namespace Module.ProjectValidator.Editor for (var i = 0; i < assets.Length; i++) { + var assetPath = AssetDatabase.GetAssetPath(assets[i]); + var scene = SceneManager.GetSceneByPath(assetPath); + var isLoaded = scene.isLoaded; + try { - var assetPath = AssetDatabase.GetAssetPath(assets[i]); - var scene = SceneManager.GetSceneByPath(assetPath); - var isLoaded = scene.isLoaded; - if (!isLoaded) scene = EditorSceneManager.OpenScene(assetPath, OpenSceneMode.Additive); @@ -194,14 +194,16 @@ namespace Module.ProjectValidator.Editor { ValidateGameObject(rootObjects[j], string.Empty, report, true); } - - if (!isLoaded) - EditorSceneManager.CloseScene(scene, true); } catch (Exception e) { Debug.LogException(e); } + finally + { + if (!isLoaded && scene.isLoaded) + EditorSceneManager.CloseScene(scene, true); + } } } From eb46c22ffc8380fb2c03b69c3d958747ef0e06dd Mon Sep 17 00:00:00 2001 From: Anders Ejlersen Date: Wed, 27 May 2026 21:50:04 +0200 Subject: [PATCH 11/11] Validator: Skipping render pipeline check on shader, fi no RenderPipeline tag is found Validator: Skipping textures in material, if marked as PerRendererData, HideInInspector or NonModifiableTextureData Validator: Fixed issue, where arrays weren't iterated correctly, which resulted in an exception Window: Added warning and error count --- Editor/ValidatorRunner.cs | 14 ++++++- .../Assets/AssetValidatorMaterialShader.cs | 6 ++- .../Assets/AssetValidatorMaterialTexture.cs | 5 ++- Editor/Window/EditorProjectValidatorWindow.cs | 40 +++++++++++++++++-- ...StyleSheetEditorProjectValidatorWindow.uss | 26 +++++++++++- .../UxmlEditorProjectValidatorWindow.uxml | 12 +++++- package.json | 2 +- 7 files changed, 93 insertions(+), 12 deletions(-) diff --git a/Editor/ValidatorRunner.cs b/Editor/ValidatorRunner.cs index c99415c..b69797a 100644 --- a/Editor/ValidatorRunner.cs +++ b/Editor/ValidatorRunner.cs @@ -423,8 +423,18 @@ namespace Module.ProjectValidator.Editor var fieldPath = parentFieldPath; ProjectValidatorUtility.AppendToFieldPath(e.FieldInfo, ref fieldPath); - - if (value is IEnumerable ie) + + if (value is Array arr) + { + for (var j = 0; j < arr.Length; j++) + { + var eObj = arr.GetValue(j); + var fieldPathArrElement = fieldPath; + ProjectValidatorUtility.AppendToFieldPath(j, ref fieldPathArrElement); + Validate(assetGuid, relativePath, fieldPathArrElement, eObj, e.Entry, report); + } + } + else if (value is IEnumerable ie) { var idx = 0; diff --git a/Editor/Validators/Assets/AssetValidatorMaterialShader.cs b/Editor/Validators/Assets/AssetValidatorMaterialShader.cs index 6a0dfce..f6e072f 100644 --- a/Editor/Validators/Assets/AssetValidatorMaterialShader.cs +++ b/Editor/Validators/Assets/AssetValidatorMaterialShader.cs @@ -28,16 +28,20 @@ namespace Module.ProjectValidator.Editor var tagSearch = new ShaderTagId("RenderPipeline"); var tagPipeline = new ShaderTagId(pipeline.renderPipelineShaderTag); + var hasKeyword = false; for (var i = 0; i < shader.passCount; i++) { var tagPass = shader.FindPassTagValue(i, tagSearch); + if (tagPass != ShaderTagId.none) + hasKeyword = true; + if (tagPass == tagPipeline) return true; } - return false; + return !hasKeyword; } } } \ No newline at end of file diff --git a/Editor/Validators/Assets/AssetValidatorMaterialTexture.cs b/Editor/Validators/Assets/AssetValidatorMaterialTexture.cs index 9f07b96..37097fa 100644 --- a/Editor/Validators/Assets/AssetValidatorMaterialTexture.cs +++ b/Editor/Validators/Assets/AssetValidatorMaterialTexture.cs @@ -16,10 +16,13 @@ namespace Module.ProjectValidator.Editor for (var i = 0; i < count; i++) { var propertyType = obj.shader.GetPropertyType(i); + var propertyFlags = obj.shader.GetPropertyFlags(i); if (propertyType != ShaderPropertyType.Texture) continue; - + if ((propertyFlags & (ShaderPropertyFlags.PerRendererData | ShaderPropertyFlags.HideInInspector | ShaderPropertyFlags.NonModifiableTextureData)) != 0) + continue; + var propertyName = obj.shader.GetPropertyName(i); var propertyValue = obj.GetTexture(propertyName); diff --git a/Editor/Window/EditorProjectValidatorWindow.cs b/Editor/Window/EditorProjectValidatorWindow.cs index 7966bc8..1d01017 100644 --- a/Editor/Window/EditorProjectValidatorWindow.cs +++ b/Editor/Window/EditorProjectValidatorWindow.cs @@ -8,12 +8,18 @@ namespace Module.ProjectValidator.Editor { internal sealed class EditorProjectValidatorWindow : EditorWindow { + private VisualElement _groupWarnings; + private Label _labelWarnings; + + private VisualElement _groupErrors; + private Label _labelErrors; + private MultiColumnTreeView _treeView; private string _searchFilter; - + private readonly List> _list = new(); private readonly List> _filteredList = new(); - + public void CreateGUI() { var root = rootVisualElement; @@ -21,6 +27,15 @@ namespace Module.ProjectValidator.Editor root.styleSheets.Add(EditorAssetUtility.LoadFirstAsset("StyleSheetEditorProjectValidatorWindow")); root.Add(asset.Instantiate()); + _groupWarnings = root.Q("status-warnings"); + _labelWarnings = _groupWarnings.Q