private void RotateHand()
    {
        handObject.transform.Rotate(new Vector3(mousePosition.y, 0, mousePosition.x));

        Vector3 clampedEulers = handObject.transform.eulerAngles;

        clampedEulers.x = QuaternionUtility.GetEulerByInspectorAngle(Mathf.Clamp(QuaternionUtility.GetInspectorAngleByEuler(handObject.transform.eulerAngles.x + mousePosition.y), minXAngle, maxXAngle));
        clampedEulers.y = 0f;
        clampedEulers.z = QuaternionUtility.GetEulerByInspectorAngle(Mathf.Clamp(QuaternionUtility.GetInspectorAngleByEuler(handObject.transform.eulerAngles.z + mousePosition.x), minZAngle, maxZAngle));
        handObject.transform.eulerAngles = clampedEulers;
    }
    void Start()
    {
        //Movement
        maxZPosition = transform.position.z + maxZDistance;
        maxXPosition = transform.position.x + maxXDistance;
        minZPosition = transform.position.z;
        minXPosition = transform.position.x - maxXDistance;
        maxYPosition = transform.position.y + maxHeight;
        minYPosition = transform.position.y;

        //Rotation
        maxXAngle = QuaternionUtility.GetInspectorAngleByEuler(handObject.transform.eulerAngles.x) + maxXRotation;
        maxZAngle = QuaternionUtility.GetInspectorAngleByEuler(handObject.transform.eulerAngles.z) + maxZRotation;
        minXAngle = QuaternionUtility.GetInspectorAngleByEuler(handObject.transform.eulerAngles.x) - maxXRotation;
        minZAngle = QuaternionUtility.GetInspectorAngleByEuler(handObject.transform.eulerAngles.z) - maxZRotation;
    }