module-project-validator/Editor/Hierarchy/EditorProjectValidatorHierarchy.cs
Anders Ejlersen dd55a87740 - 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
2026-05-24 18:06:56 +02:00

45 lines
No EOL
2 KiB
C#

using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine;
using UnityEngine.SceneManagement;
namespace Module.ProjectValidator.Editor
{
[InitializeOnLoad]
internal static class EditorProjectValidatorHierarchy
{
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())
Report.Active.RebuildInstanceMapping();
}
}
}