private void Update() { if (!useController && leapServiceProvider.CurrentFrame.Hands.Count > 0) { if (primaryHand.mainRenderModel) { primaryHand.mainRenderModel.gameObject.SetActive(false); } primaryHand.hoverSphereTransform.position = leapServiceProvider.CurrentFrame.Hands[0].PalmPosition.ToVector3(); primaryHand.hoverSphereTransform.rotation = leapServiceProvider.CurrentFrame.Hands[0].Rotation.ToQuaternion(); if (leapServiceProvider.CurrentFrame.Hands[0].GrabStrength > 0.9f) { if (!isGrabbing) { grabbedThisFrame = true; isGrabbing = true; } } else { isGrabbing = false; } if (grabbedThisFrame && grabbedObject == null) { if (primaryHand.hoveringInteractable != null) { Takeable toGrab = primaryHand.hoveringInteractable.GetComponent <Takeable>(); if (toGrab != null) { toGrab.takeObject(primaryHand); if (!TaskController.Instance.IsSelectionTask()) { grabbedObject = toGrab; originalParent = grabbedObject.transform.parent; grabbedObject.transform.SetParent(primaryHand.hoverSphereTransform); } } } else { TaskController.Instance.ObjectSelected(null, null, primaryHand); } } else if (!isGrabbing) { if (grabbedObject != null) { grabbedObject.transform.SetParent(originalParent); grabbedObject.ReleaseObject(); grabbedObject = null; } } } grabbedThisFrame = false; }
public override void ReleaseObject() { if (grabbedObject) { grabbedObject.ReleaseObject(); } renderedRay.gameObject.SetActive(true); grabbedObject = null; }
public override void ReleaseObject() { if (!grabbedObject) { return; } grabbedObject.transform.SetParent(originalParent); grabbedObject.ReleaseObject(); grabbedObject = null; }
public override void ReleaseObject() { if (grabbedObject) { grabbedObject.transform.SetParent(originalParent); grabbedObject.ReleaseObject(); grabbedObject = null; } center.transform.localScale = Vector3.one; }
/// <summary> /// Releases the current objects and resets the technique if necessary. /// </summary> public override void ReleaseObject() { grabActive = false; grabDisabled = false; rotationLever.gameObject.SetActive(false); translationLever.gameObject.SetActive(false); barMaterial.SetMainColorAlpha(0.5f); if (currentTakeable != null) { currentTakeable.ReleaseObject(); currentTakeable = null; lastHandPositions = new List <Vector3>(); if (rotationMode) { lastFullGrabTime = 0f; } rotationMode = false; } else { lastFullGrabTime = 0f; } }