# GetNodeStates(List<XRNodeState>)

> Describes all currently connected XRNodes and provides available tracking states for each.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine.XR](/engine/6000.5/script-reference/unityengine/xr.md)
* **Assembly:** UnityEngine.XRModule

```csharp
public static void GetNodeStates(List<XRNodeState> nodeStates)
```

### Parameters

**** (\[List\<XRNodeState>]\(https\://learn.microsoft.com/dotnet/api/system.collections.generic.list-1)): A list that is populated with [XRNodeState](/engine/6000.5/script-reference/unityengine/xr/xrnodestate.md) objects.

### Remarks

Use this method to acquire all the currently available XR input Nodes, as an alternative to handling the node events [InputTracking.nodeAdded](/engine/6000.5/script-reference/unityengine/xr/inputtracking/nodeadded.md) and [InputTracking.nodeRemoved](/engine/6000.5/script-reference/unityengine/xr/inputtracking/noderemoved.md). The contents of `nodeStates` list will be cleared and replaced with fresh data.

Not all XR platforms provide complete tracking data. Use the methods [XRNodeState.TryGetPosition](/engine/6000.5/script-reference/unityengine/xr/xrnodestate/trygetposition.md), [XRNodeState.TryGetRotation](/engine/6000.5/script-reference/unityengine/xr/xrnodestate/trygetrotation.md), etc. to read the data if it's available.
