- 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
This commit is contained in:
Anders Ejlersen 2026-05-24 18:06:56 +02:00
parent 01ac17a078
commit dd55a87740
30 changed files with 716 additions and 38 deletions

View file

@ -24,6 +24,7 @@ namespace Module.ProjectValidator.Editor
root.Q<ToolbarButton>("button-run").clicked += OnToolbarButtonRunClicked;
root.Q<ToolbarButton>("button-clear").clicked += OnToolbarButtonClearClicked;
root.Q<ToolbarSearchField>().RegisterValueChangedCallback(OnToolbarSearchFieldChanged);
root.Q<ToolbarButton>("button-settings").clicked += OnToolbarButtonSettingsClicked;
_treeView = root.Q<MultiColumnTreeView>();
_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<string> evt)
{
_searchFilter = evt.newValue;

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: a22633e08b3d4c0fbbea654a8a8cd287
timeCreated: 1779637991

View file

@ -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;
}
}
}

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: e6c8cb829f514028b705bf121373c67c
timeCreated: 1779638011

View file

@ -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;
}

View file

@ -4,6 +4,7 @@
<uie:ToolbarButton text="Clear" name="button-clear"/>
<uie:ToolbarSpacer style="flex-grow: 1;"/>
<uie:ToolbarSearchField name="search-field"/>
<uie:ToolbarButton text="" name="button-settings" class="toolbar-button-settings"/>
</uie:Toolbar>
<ui:MultiColumnTreeView columns="" sort-column-descriptions="" name="tree-view" show-alternating-row-backgrounds="All" data-source-type="Module.ProjectValidator.Editor.Report+Entry, Module.ProjectValidator.Editor" sorting-mode="Default" class="tree-view">
<ui:Columns reorderable="false" primary-column-name="severity">