void StartOffsetTracking() { List <TrackerRole> keys = new List <TrackerRole> { TrackerRole.Torso, TrackerRole.FootLeft, TrackerRole.FootRight }; List <Transform> values = new List <Transform> { transform, ankleMarkerLeft.transform, ankleMarkerRight.transform }; foreach (var item in trackers) { int index = keys.IndexOf(item.Key); if (index >= 0) { var trackedInfo = new OffsetTracking(); trackedInfo.deviceIndex = item.Value; trackedInfo.trackerRole = keys[index]; trackedInfo.targetTrans = values[index]; trackedInfo.deviceMarkerDict = deviceMarkerDict; trackedInfo.StartTracking(); offsetTrackedList.Add(trackedInfo); } } markerHead.transform.parent = Camera.main.transform; }
private void StartTracking(List <CalibrationPoint> calibrationPoints) { foreach (var calibrationPoint in calibrationPoints) { if (calibrationPoint.DeviceIndex >= 0) { var debugModel = debugTrackersModels[calibrationPoint.DeviceIndex]; calibrationPoint.DevicePosition = debugModel.transform.position; var trackedInfo = new OffsetTracking(); trackedInfo.deviceIndex = calibrationPoint.DeviceIndex; trackedInfo.targetTrans = targets[calibrationPoint.Type]; trackedInfo.pointType = calibrationPoint.Type; trackedInfo.deviceTransform = debugModel.transform; if (calibrationPoint.Type == CalibrationPointType.LeftHand) { Extensions.AssignChildAndKeepLocalTransform(debugModel.transform, leftHandOffsetObject.transform); } if (calibrationPoint.Type == CalibrationPointType.RightHand) { Extensions.AssignChildAndKeepLocalTransform(debugModel.transform, rightHandOffsetObject.transform); } if (calibrationPoint.Type == CalibrationPointType.LeftElbow) { Extensions.AssignChildAndKeepLocalTransform(debugModel.transform, leftElbowOffsetObject.transform); } trackedInfo.StartTracking(); offsetTrackedList.Add(trackedInfo); debugModel.Text.text = calibrationPoint.Type.ToString(); logText.text += "\n " + "Calibrated device " + calibrationPoint.Type + " device class " + OpenVR.System.GetTrackedDeviceClass((uint)calibrationPoint.DeviceIndex); } } markerHead.transform.parent = Camera.main.transform; }
//------------------------------------------------------------------------------------------------------------- void StartOffsetTracking() { List <TrackerRole> keys = new List <TrackerRole> { TrackerRole.Torso, TrackerRole.FootLeft, TrackerRole.FootRight }; List <Transform> values = new List <Transform> { bodyOffsetObject.transform, leftFootOffsetObject.transform, rightFootOffsetObject.transform }; // Create a offset List. foreach (var item in trackers) { int index = keys.IndexOf(item.Key); if (index >= 0) { var trackedInfo = new OffsetTracking(); trackedInfo.deviceIndex = item.Value; trackedInfo.trackerRole = keys [index]; trackedInfo.targetTrans = values [index]; trackedInfo.deviceMarkerDict = deviceMarkerDict; trackedInfo.StartTracking(); offsetTrackedList.Add(trackedInfo); } } headOffsetObject.transform.parent = Camera.main.transform; }