private void ReleaseObject()
 {
     if (GetComponent <FixedJoint>())
     {
         GetComponent <FixedJoint>().connectedBody = null;
         Destroy(GetComponent <FixedJoint>());
         objectInHand.GetComponent <Rigidbody>().velocity        = controllerPose.GetVelocity();
         objectInHand.GetComponent <Rigidbody>().angularVelocity = controllerPose.GetAngularVelocity();
     }
     objectInHand = null;
     heldItem     = null;
 }
    private void GrabObject()
    {
        objectInHand    = collidingObject;
        collidingObject = null;
        heldItem        = objectInHand.GetComponent <IPickupActionable>();

        //Align object
        //if(objectInHand.CompareTag("Align")) objectInHand.transform.SetPositionAndRotation(controllerPose.transform.position, controllerPose.transform.rotation);

        var joint = AddFixedJoint();

        joint.connectedBody = objectInHand.GetComponent <Rigidbody>();
    }
    private void RemoveCollidingObject(Collider col)
    {
        if (!collidingObject)
        {
            return;
        }

        if (col.CompareTag("InteractionZone"))
        {
            interactionZone.OnExit();
            interactionZoneObject = null;
            interactionZone       = null;
        }

        collidingObject = null;
    }
    private void SetCollidingObject(Collider col)
    {
        if (collidingObject)
        {
            return;
        }

        if (col.GetComponent <Rigidbody>() || col.CompareTag("InteractionZone"))
        {
            collidingObject = col.gameObject;
        }

        if (col.CompareTag("InteractionZone"))
        {
            interactionZoneObject = collidingObject;
            interactionZone       = interactionZoneObject.GetComponent <IPickupActionable>();
            interactionZone.OnEnter();
        }
    }