I want to track the position of a (Vive) Tracker with the native Unity XR classes. The InputTracking.GetLocalPosition method, doesn't work in this case, because there can be multiple tracker: https://docs.unity3d.com/ScriptReference/XR.InputTracking.GetLocalPosition.html It outputs a warning/error, https://docs.unity3d.com/ScriptReference/XR.InputTracking.GetNodeStates.html should be used instead. This method works, it returns a list of all states and there is also a entry for the "HardwareTracker" which gives the correct values for the connected Vive Tracker. But my question is: Is there a better way to handle this? Because I have to update the position every Update and it feels kinda weird to iterate the list every frame to get the "HardwareTracker" state from the updated list. I tried to store the reference of the "HardwareTracker" state, but they are structs so it's not possible. The state also has some (hardware) id property but I couldn't find any way to use this id to get the tracking information. The only methods I found are the two linked above. I don't want to use the SteamVR plugin, I know that it would be easier to handle tracker that way, I'm only asking about the native Unity XR.