Example #1
0
    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;
    }
Example #2
0
    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;
        }