Ejemplo n.º 1
0
 public static extern manus_ret_t ManusSetProfile(manus_session_t session, ik_profile_t profile);
Ejemplo n.º 2
0
        /// <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);
                }
            }
        }
Ejemplo n.º 3
0
 public static extern manus_ret_t ManusGetProfile(manus_session_t session, out ik_profile_t out_profile);