// Update is called once per frame void Update() { if (Input.GetAxis(grabAxis) > 0.5) { isGrabButtonHeld = true; } else { if (wasGrabJustHeld) { if (currentGrabbable != null && currentGrabbable.GetHand() == this.gameObject) { currentGrabbable.EndGrab(); previousGrabbable = currentGrabbable; currentGrabbable = null; } } isGrabButtonHeld = false; wasGrabbaleCheckJustTriggered = false; wasGrabJustHeld = false; } //only check for grabbable when trigger has just been held down if (isGrabButtonHeld == true && wasGrabbaleCheckJustTriggered == false) { wasGrabJustHeld = true; wasGrabbaleCheckJustTriggered = true; //do grabbable checks Debug.Log("Checking for grabbable"); // ray = new Ray (transform.position, transform.forward); // if (Physics.SphereCast(ray,radius, out hit, range)){ // currentGrabbable = hit.collider.gameObject.GetComponent<Grabbable> (); // if (currentGrabbable != null) { // currentGrabbable.StartGrab (); // } // } if (currentGrabbable != null && currentGrabbable.IsGrabbed == false) { currentGrabbable.StartGrab(this.gameObject); } } }