//Moves an object by an ammount, under time
    IEnumerator MoveHorizontalBy(Transform obj, float moveBy, float time, bool changeBackPackState)
    {
        //If changeing state is allowed, change to in transit state
        if (changeBackPackState)
        {
            backPackState = BackPackState.inTransit;
        }

        //Move the menu to the designated position under time
        float i    = 0.0f;
        float rate = 1.0f / time;

        Vector3 startPos = obj.localPosition;
        Vector3 endPos   = startPos;

        endPos.x += moveBy;

        while (i < 1.0)
        {
            i += Time.deltaTime * rate;
            obj.localPosition = Vector3.Lerp(startPos, endPos, i);
            yield return(0);
        }

        //If changing state is allowed, change to the right state
        if (changeBackPackState)
        {
            if (moveBy < 0)
            {
                backPackState = BackPackState.open;
            }
            else
            {
                backPackState = BackPackState.close;
            }
        }
    }
    //Moves an object by an ammount, under time
    IEnumerator MoveHorizontalBy(Transform obj, float moveBy, float time, bool changeBackPackState)
    {
        //If changeing state is allowed, change to in transit state
        if (changeBackPackState)
            backPackState = BackPackState.inTransit;

        //Move the menu to the designated position under time
        float i = 0.0f;
        float rate = 1.0f / time;

        Vector3 startPos = obj.localPosition;
        Vector3 endPos = startPos;
        endPos.x += moveBy;

        while (i < 1.0)
        {
            i += Time.deltaTime * rate;
            obj.localPosition = Vector3.Lerp(startPos, endPos, i);
            yield return 0;
        }

        //If changing state is allowed, change to the right state
        if (changeBackPackState)
        {
            if (moveBy < 0)
                backPackState = BackPackState.open;
            else
                backPackState = BackPackState.close;
        }
    }