#if UNITY_EDITOR using System.Linq; using UnityEditor; using UnityEngine; namespace RR.Common.InspectorOverrides { public static class HierarchySelectionCounter { public static int GetSelectedHierarchyObjectCount() { return Selection.gameObjects.Count(gameObject => gameObject != null && gameObject.scene.IsValid()); } [MenuItem("Tools/Hierarchy/Count Selected Objects %#h")] private static void CountSelectedObjects() { int selectedCount = GetSelectedHierarchyObjectCount(); string message = selectedCount == 0 ? "В Hierarchy ничего не выделено." : $"Выделено объектов в Hierarchy: {selectedCount}"; Debug.Log($"[HierarchySelectionCounter] {message}"); EditorUtility.DisplayDialog("Hierarchy Selection Counter", message, "OK"); } [MenuItem("Tools/Hierarchy/Count Selected Objects %#h", true)] private static bool ValidateCountSelectedObjects() { return GetSelectedHierarchyObjectCount() > 0; } } } #endif