32 lines
No EOL
1.2 KiB
C#
32 lines
No EOL
1.2 KiB
C#
using UnityEditor;
|
|
using UnityEditor.SceneManagement;
|
|
using UnityEngine;
|
|
using UnityEngine.SceneManagement;
|
|
|
|
namespace Module.ProjectValidator.Editor
|
|
{
|
|
[InitializeOnLoad]
|
|
internal static class EditorProjectValidatorHierarchy
|
|
{
|
|
static EditorProjectValidatorHierarchy()
|
|
{
|
|
EditorApplication.hierarchyWindowItemOnGUI -= OnHierarchyWindowItemOnGUI;
|
|
EditorApplication.hierarchyWindowItemOnGUI += OnHierarchyWindowItemOnGUI;
|
|
|
|
EditorSceneManager.sceneOpened -= OnSceneOpened;
|
|
EditorSceneManager.sceneOpened += OnSceneOpened;
|
|
}
|
|
|
|
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);
|
|
}
|
|
|
|
private static void OnSceneOpened(Scene scene, OpenSceneMode mode)
|
|
{
|
|
if (Report.HasActive && ProjectValidatorUtility.IsValidForRun())
|
|
Report.Active.RebuildInstanceMapping();
|
|
}
|
|
}
|
|
} |