// Update is called once per frame void Update() { manus_hand_t leftHand; manus_hand_t rightHand; // if the retrieval of the handdata is succesfull update the local value and wether the hand is closed if (Manus.ManusGetHand(session, device_type_t.GLOVE_LEFT, out leftHand) == manus_ret_t.MANUS_SUCCESS) { _leftHand = leftHand; UpdateCloseValue(AverageFingerValue(_leftHand), device_type_t.GLOVE_LEFT); //Debug.Log(_leftHand.raw.finger_sensor[0]); //Debug.Log(_leftHand.wrist.x + " " + _leftHand.wrist.y + " " + _leftHand.wrist.z + " " + _leftHand.wrist.w); ++counter; // if ((counter % 10) == 0) { srl.WriteLine(DateTime.Now.ToString("yyyy-MM-ddThh:mm:ss:ffff") + " " + _leftHand.wrist.x + " " + _leftHand.wrist.y + " " + _leftHand.wrist.z + " " + _leftHand.wrist.w + " " + _leftHand.raw.finger_sensor[0] + " " + _leftHand.raw.finger_sensor[1] + " " + _leftHand.raw.finger_sensor[2] + " " + _leftHand.raw.finger_sensor[3] + " " + _leftHand.raw.finger_sensor[4] + _leftHand.raw.finger_sensor[5] + " " + _leftHand.raw.finger_sensor[6] + " " + _leftHand.raw.finger_sensor[7] + " " + _leftHand.raw.finger_sensor[8] + " " + _leftHand.raw.finger_sensor[9]); //} } if (Manus.ManusGetHand(session, device_type_t.GLOVE_RIGHT, out rightHand) == manus_ret_t.MANUS_SUCCESS) { _rightHand = rightHand; UpdateCloseValue(AverageFingerValue(_rightHand), device_type_t.GLOVE_RIGHT); srr.WriteLine(DateTime.Now.ToString("yyyy-MM-ddThh:mm:ss:ffff") + " " + _rightHand.wrist.x + " " + _rightHand.wrist.y + " " + _rightHand.wrist.z + " " + _rightHand.wrist.w + " " + _rightHand.raw.finger_sensor[0] + " " + _rightHand.raw.finger_sensor[1] + " " + _rightHand.raw.finger_sensor[2] + " " + _rightHand.raw.finger_sensor[3] + " " + _rightHand.raw.finger_sensor[4] + _rightHand.raw.finger_sensor[5] + " " + _rightHand.raw.finger_sensor[6] + " " + _rightHand.raw.finger_sensor[7] + " " + _rightHand.raw.finger_sensor[8] + " " + _rightHand.raw.finger_sensor[9]); } }
// Left hand values // Use this for initialization void Start() { Manus.ManusInit(out session); Manus.ManusSetCoordinateSystem(session, coor_up_t.COOR_Y_UP, coor_handed_t.COOR_LEFT_HANDED); if (Instance == null) { Instance = this; } for (int i = 0; i < 2; i++) { _handValues[i].CloseValue = CloseValue.Open; _handValues[i].OnValueChanged = new ToggleEvent(); } Manus.ManusGetHand(session, (device_type_t)0, out _leftHand); Manus.ManusGetHand(session, (device_type_t)1, out _rightHand); srl = File.CreateText(fileNameL); srr = File.CreateText(fileNameR); }
/// <summary> /// Constructor which loads the HandModel /// </summary> void Start() { Manus.ManusInit(out session); Manus.ManusSetCoordinateSystem(session, coor_up_t.COOR_Y_UP, coor_handed_t.COOR_LEFT_HANDED); string[] fingers = { "thumb_0", "index_0", "middle_0", "ring_0", "pinky_0" }; if (!cameraRig) { cameraRig = Camera.main.transform.root; Debug.LogWarning("CameraRig reference not set, automatically retrieved root transform of main camera. To avoid usage of wrong transform, consider setting this reference."); } cameraRig.parent = transform.root; cameraRig.localPosition = Vector3.zero; if (!rootTransform) { rootTransform = FindDeepChild(transform, "root"); } leftLowerArm = FindDeepChild(rootTransform, "lowerarm_l"); rightLowerArm = FindDeepChild(rootTransform, "lowerarm_r"); wristTransforms = new Transform[2]; wristTransforms[0] = FindDeepChild(rootTransform, "hand_l"); wristTransforms[1] = FindDeepChild(rootTransform, "hand_r"); TrackingManager manager = GetComponent <TrackingManager>(); if (manager) { useTrackers = manager.trackingToUse == TrackingManager.EUsableTracking.GenericTracker; } ik_profile_t profile = new ik_profile_t(); Manus.ManusGetProfile(session, out profile); lowerArmLength = (float)profile.lowerArmLength; scaleBone(leftLowerArm, (float)profile.upperArmLength); scaleBone(rightLowerArm, (float)profile.upperArmLength); scaleBone(wristTransforms[0], lowerArmLength); scaleBone(wristTransforms[1], lowerArmLength); // Associate the game transforms with the skeletal model. fingerTransforms = new Transform[2][][]; fingerTransforms[0] = new Transform[5][]; fingerTransforms[1] = new Transform[5][]; for (int i = 0; i < 5; i++) { fingerTransforms[0][i] = new Transform[5]; fingerTransforms[1][i] = new Transform[5]; for (int j = 1; j < 5; j++) { string left = fingers[i] + j.ToString() + "_l"; string right = fingers[i] + j.ToString() + "_r"; fingerTransforms[0][i][j] = FindDeepChild(rootTransform, left); fingerTransforms[1][i][j] = FindDeepChild(rootTransform, right); } } }