# GetChildrenCount(in HierarchyNode)

> Gets the number of child nodes that a hierarchy node has.

## Definition

* **Type:** Method
* **Namespace:** [Unity.Hierarchy](/engine/6000.7/script-reference/unity/hierarchy.md)
* **Assembly:** UnityEngine.HierarchyCoreModule

## GetChildrenCount(HierarchyNode)

```csharp
public int GetChildrenCount(in HierarchyNode node)
```

### Parameters

**** (\[HierarchyNode]\(/engine/6000.7/script-reference/unity/hierarchy/hierarchynode)): The hierarchy node to count children for.

### Returns

| Type                                                       | Description                                                       |
| ---------------------------------------------------------- | ----------------------------------------------------------------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) | The number of direct child nodes of the specified hierarchy node. |

### Remarks

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.

### Examples

```csharp
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;
            }
        }
    }
}
```
