Unity 6.3
0 онлайн 85 гостей 3 в системе
Вход

EditorApplication.hierarchyChanged

Описание

Событие, возникающее при изменении объекта или группы объектов в иерархии.

Действия, вызывающие это событие, включают создание, переименование, изменение родительских прав или уничтожение объектов в текущей иерархии, а также загрузку, разгрузку, переименование или изменение порядка загруженных Сцен. Обратите внимание, что событие не возникает сразу же в ответ на эти действия, а во время следующего обновления приложения редактора.

Действия, предпринятые с объектами, для которых установлены HideFlags.HideInHierarchy, не вызывают возникновения этого события, но изменение Object.hideFlags вызывает возникновение события.

Следующий пример скрипта регистрирует количество объектов в консоли при каждом изменении иерархии. Скопируйте его в файл с названием HierarchyMonitor.cs и поместите его в папку с названием Редактор.

using System.Linq;
using UnityEditor;
using UnityEngine;

[InitializeOnLoadAttribute] public static class HierarchyMonitor { static HierarchyMonitor() { EditorApplication.hierarchyChanged += OnHierarchyChanged; }

static void OnHierarchyChanged() { var all = Resources.FindObjectsOfTypeAll(typeof(GameObject)); var numberVisible = all.Where(obj => (obj.hideFlags & HideFlags.HideInHierarchy) != HideFlags.HideInHierarchy).Count(); Debug.LogFormat("There are currently {0} GameObjects visible in the hierarchy.", numberVisible); } }

Дополнительные ресурсы: ,EditorWindow.OnHierarchyChange,.