Exemplo n.º 1
0
 // Update is called once per frame
 void Update()
 {
     foreach (var paint in GameObject.FindGameObjectsWithTag("PaintObject"))
     {
         if (!_isGrabbing && Vector3.Distance(paint.GetComponent <MeshRenderer>().bounds.center, DeviceType == device_type_t.GLOVE_RIGHT ? GameObject.Find("hand_s_r").transform.position : GameObject.Find("hand_s_l").transform.position) < 0.1f)
         {
             if (HandData.GetCloseValue(DeviceType) == CloseValue.Fist)
             {
                 if (DeviceType == device_type_t.GLOVE_LEFT)
                 {
                     GameObject leftHand = GameObject.Find("hand_s_l");
                     paint.transform.parent = leftHand.transform;
                 }
                 else
                 {
                     GameObject rightHand = GameObject.Find("hand_s_r");
                     paint.transform.parent = rightHand.transform;
                 }
                 _grabbedItem = paint;
                 _isGrabbing  = true;
             }
         }
         else if (_isGrabbing)
         {
             if (HandData.GetCloseValue(DeviceType) != CloseValue.Fist)
             {
                 _grabbedItem.transform.parent = null;
                 _isGrabbing = false;
             }
         }
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// Try to grab items
        /// </summary>
        private void UpdateGrabObjects()
        {
            if (_grabbedItem != null || HandData.GetCloseValue(DeviceType) == CloseValue.Fist)
            {
                return;
            }
            // Always try to grab a item when the user is making a fist

            // *********
            // Commented out by Murray Sandmeyer

            /*
             * if (HandData.FirstJointAverage(DeviceType) > 0.32f && _physicsHand.AmountOfCollidingObjects() > 0)
             *  foreach (var rb in TriggerBinder.CollidingInteractables)
             *      GrabItem(rb);
             *
             * if (_physicsHand.IsThumbColliding && _physicsHand.AmountOfCollidingObjects() > 1 && HandData.FirstJointAverage(DeviceType) > 0.07f)
             *  foreach (var rb in TriggerBinder.CollidingInteractables)
             *      GrabItem(rb);
             */

            if (HandData.Average(DeviceType) >= 0.2)
            {
                foreach (var rb in TriggerBinder.CollidingInteractables)
                {
                    GrabItem(rb);
                }
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Try to grab items
        /// </summary>
        private void UpdateGrabObjects()
        {
            //Debug.Log(HandData.GetCloseValue(DeviceType));
            if (_grabbedItem != null || HandData.GetCloseValue(DeviceType) == CloseValue.Fist)
            {
                return;
            }
            // Always try to grab a item when the user is making a fist
            if (HandData.FirstJointAverage(DeviceType) > 0.32f && _physicsHand.AmountOfCollidingObjects() > 0)
            {
                foreach (var rb in TriggerBinder.CollidingInteractables)
                {
                    GrabItem(rb);
                }
            }


            if (_physicsHand.IsThumbColliding && _physicsHand.AmountOfCollidingObjects() > 1 && HandData.FirstJointAverage(DeviceType) > 0.07f)
            {
                foreach (var rb in TriggerBinder.CollidingInteractables)
                {
                    GrabItem(rb);
                }
            }
        }