private GameObject ChooseJoint()
    {
        GameObject retval;

        if (activeFinger != fingers[5])
        {
            FingerController fc = activeFinger.GetComponent <FingerController>();
            if (activeJoint == 0)
            {
                retval = fc.proximalPhalange;
            }
            else if (activeJoint == 1)
            {
                retval = fc.middlePhalange;
            }
            else
            {
                retval = fc.distalPhalange;
            }
        }
        else
        {
            retval = fingers[5];
        }

        return(retval);
    }
示例#2
0
    public string GenerateInteractionStream()
    {
        // Initialize
        string retstr = "";

        // For each finger, add to the string
        foreach (GameObject finger in handController.fingers)
        {
            FingerController fc = finger.GetComponent <FingerController>();

            // Add proximal
            retstr += (fc.jointControllers[0].isInteracting ? 1 : 0) * fc.jointControllers[0].forcePercent;
            //retstr += ",";

            // Link proximal and distal
            int middleForce = (fc.jointControllers[1].isInteracting ? 1 : 0) * fc.jointControllers[1].forcePercent;
            int distalForce = (fc.jointControllers[2].isInteracting ? 1 : 0) * fc.jointControllers[2].forcePercent;
            retstr += (Mathf.Max(middleForce, distalForce));

            //retstr += ",";
        }

        //string retstr1 = retstr.Remove(retstr.Length - 1, 1);
        return(retstr);
    }
示例#3
0
        public IEnumerator MiddleDistalJointInteractionTriggers()
        {
            // Initialize
            FingerController fingerController = handController.middleFinger.GetComponent <FingerController>();
            GameObject       joint            = fingerController.distalPhalange;
            BoxCollider      interactionPad   = joint.GetComponent <BoxCollider>();

            // Spawn a collider on the interaction pad
            testObj = new GameObject();
            testObj.AddComponent <BoxCollider>();
            testObj.transform.position = interactionPad.transform.position;

            // Allow interaction to occur
            yield return(new WaitForFixedUpdate());

            // Check to see if the interaction happened
            Assert.True(joint.GetComponent <JointController>().isInteracting);
        }
 public void SpawnFinger(int zone)
 {
     lastPress    = 0;
     tutorialZone = zone;
     if (finger == null)
     {
         finger = GameObjectUtils.AddChildGUI(mainCanvas.gameObject, pointerPrefab).GetComponent <FingerController>();
         finger.transform.SetSiblingIndex(2);
     }
     else
     {
         LeanTween.cancel(finger.gameObject);
     }
     if (tutorialZone == 3)
     {
         finger.transform.position = GetCorrectTransform().position;            //GetButtonTransform((int)assemblyLineController.PeekFirstItem().ItemType).transform.position;
     }
     else
     {
         finger.transform.position = GetButtonTransform(tutorialZone).position;
     }
     multipleFinger = finger.RepeatShake(3 - tutorialZone, new Vector3(0, 20));
     StartCoroutine(multipleFinger);
 }
示例#5
0
        public IEnumerator ThumbMiddleJointInteractionDisengages()
        {
            // Initialize
            FingerController fingerController = handController.Thumb.GetComponent <FingerController>();
            GameObject       joint            = fingerController.middlePhalange;
            BoxCollider      interactionPad   = joint.GetComponent <BoxCollider>();

            // Spawn a collider on the interaciton pad
            testObj = new GameObject();
            testObj.AddComponent <BoxCollider>();
            testObj.transform.position = interactionPad.transform.position;

            // Allow interaction to occur
            yield return(new WaitForFixedUpdate());

            // Teleport the collider away
            testObj.transform.position += new Vector3(50, 50, 50);

            // Allow for another interaciton to occur
            yield return(new WaitForFixedUpdate());

            // Check to see if the interaction flag was removed
            Assert.False(joint.GetComponent <JointController>().isInteracting);
        }
 private void Awake()
 {
     Instance = this;
 }