private IEnumerator RegisterHand(bool isPrimaryHand) { // right is zero left is one // primary hand is right yield return(new WaitUntil(() => PS4Input.MoveIsConnected(0, isPrimaryHand?0:1))); var primaryhandles = new int[1]; var secondaryhandles = new int[1]; PS4Input.MoveGetUsersMoveHandles(1, primaryhandles, secondaryhandles); handle = isPrimaryHand ? primaryhandles[0] : secondaryhandles[0]; var result = Tracker.RegisterTrackedDevice(PlayStationVRTrackedDevice.DeviceMove, handle, trackingType, trackerUsageType); if (result == PlayStationVRResult.Ok) { //TODO: May have to have a separate tracking status for every hand separately? //Look at psvr Unity example // var trackingStatus = new PlayStationVRTrackingStatus(); while (trackingStatus == PlayStationVRTrackingStatus.NotStarted) { Tracker.GetTrackedDeviceStatus(handle, out trackingStatus); yield return(null); } Tracker.GetTrackedDeviceLedColor(handle, out trackedColor); } else { Debug.LogError("Tracking failed for DeviceMove! This may be because you're trying to register too many devices at once."); } }