public override void OnInspectorGUI()
    {
        HandController t = target as HandController;

        if (t.Gears.Count == 0)
        {
            t.createGears();
        }

        EditorGUILayout.LabelField("Gears:");
        {
            EditorGUI.indentLevel++;
            foreach (var entry in t.Gears)
            {
                entry.Value.angle = EditorGUILayout.FloatField(entry.Key.ToString().ToLower(), entry.Value.angle);
            }
            EditorGUI.indentLevel--;
        }

        EditorGUILayout.Space();

        if (GUILayout.Button("Generate Skeleton"))
        {
            Transform parent = t.transform;

            for (HandBoneIndex i = HandBoneIndices.WristStart; i < HandBoneIndices.WristEnd; ++i)
            {
                parent = createBoneNode(parent, i);
            }

            Transform thumb = parent, index = parent, middle = parent, ring = parent, pinky = parent;

            for (HandBoneIndex i = HandBoneIndices.ThumbStart; i < HandBoneIndices.ThumbEnd; ++i)
            {
                thumb = createBoneNode(thumb, i);
            }
            for (HandBoneIndex i = HandBoneIndices.IndexStart; i < HandBoneIndices.IndexEnd; ++i)
            {
                index = createBoneNode(index, i);
            }
            for (HandBoneIndex i = HandBoneIndices.MiddleStart; i < HandBoneIndices.MiddleEnd; ++i)
            {
                middle = createBoneNode(middle, i);
            }
            for (HandBoneIndex i = HandBoneIndices.RingStart; i < HandBoneIndices.RingEnd; ++i)
            {
                ring = createBoneNode(ring, i);
            }
            for (HandBoneIndex i = HandBoneIndices.PinkyStart; i < HandBoneIndices.PinkyEnd; ++i)
            {
                pinky = createBoneNode(pinky, i);
            }

            HandRig rig = t.GetComponent <HandRig>();
            if (rig)
            {
                rig.searchNodes();
            }
        }
    }
Example #2
0
        void Reset()
        {
            LeftHand  = new HandRig();
            RightHand = new HandRig();

            string hand  = "hand";
            string left  = "_l";
            string right = "_r";
            string prox  = "_01";
            string inter = "_02";
            string dist  = "_03";

            LeftHand.WristTransform  = transform.FindDeepChild(hand + left);
            RightHand.WristTransform = transform.FindDeepChild(hand + right);

            for (int i = 0; i < 5; i++)
            {
                string finger = "";
                switch (i)
                {
                case 0:
                    finger = "thumb";
                    break;

                case 1:
                    finger = "index";
                    break;

                case 2:
                    finger = "middle";
                    break;

                case 3:
                    finger = "ring";
                    break;

                case 4:
                    finger = "pinky";
                    break;
                }

                LeftHand.GetFingerRig((FingerIndex)i).Proximal    = transform.FindDeepChild(finger + prox + left);
                LeftHand.GetFingerRig((FingerIndex)i).Intermedial = transform.FindDeepChild(finger + inter + left);
                LeftHand.GetFingerRig((FingerIndex)i).Distal      = transform.FindDeepChild(finger + dist + left);

                RightHand.GetFingerRig((FingerIndex)i).Proximal    = transform.FindDeepChild(finger + prox + right);
                RightHand.GetFingerRig((FingerIndex)i).Intermedial = transform.FindDeepChild(finger + inter + right);
                RightHand.GetFingerRig((FingerIndex)i).Distal      = transform.FindDeepChild(finger + dist + right);
            }
        }
Example #3
0
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        HandRig t = target as HandRig;

        if (GUILayout.Button("Capture Data"))
        {
            t.captureData();
        }

        if (GUILayout.Button("Apply Data"))
        {
            t.applyData();

            BoneMarker[] markers = t.gameObject.GetComponentsInChildren <BoneMarker>();
            foreach (BoneMarker marker in markers)
            {
                marker.updateMesh();
            }
        }
    }