// 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; } } } }
/// <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); } } }
/// <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); } } }