| Parameter | Description |
|---|---|
| node | The hierarchy node. |
int The number of children.
Gets the number of child nodes that a hierarchy node has.
The following example displays how many children each collapsed item has in the Hierarchy window. It uses GetChildrenCount to check whether a collapsed item has children before displaying the label.
To use this example, save the script in a folder called Assets/Editor/CountWhenCollapsed. Scripts in an Editor folder can use the Hierarchy module API without additional setup. If you save the script outside of an Editor folder, you must enable the Hierarchy built-in module in the Package Manager window, which also adds the module to your Player builds.
using Unity.Hierarchy; using Unity.Hierarchy.Editor; using UnityEditor; using UnityEngine.UIElements;
namespace Unity.HierarchySamples.Editor { class CountWhenCollapsed { const string k_ChildrenCountUssClassName = "hierarchy-children-count";
[InitializeOnLoadMethod] static void Initialize() { HierarchyWindow.BindViewItem += OnBindViewItem; }
static void OnBindViewItem(HierarchyWindow window, HierarchyView view, HierarchyViewItem item) { HierarchyNode node = item.Node; int childrenCount = view.ViewModel.GetChildrenCount(node); Label label = item.LeftCustomContainer.Q<Label>(className: k_ChildrenCountUssClassName);
if (childrenCount > 0 && view.ViewModel.DoesNotHaveFlags(node, HierarchyNodeFlags.Expanded)) { if (label == null) { label = new Label(); label.AddToClassList(k_ChildrenCountUssClassName); item.LeftCustomContainer.Add(label); }
label.text = $"({childrenCount})"; label.style.display = DisplayStyle.Flex; } else { if (label != null) label.style.display = DisplayStyle.None; } } } }