/// <summary>
    ///  This function moves to inputted tutorial state.
    /// </summary>
    /// <param name="input"></param>
    public void MoveToNext(tutorialstateinput input)
    {
        switch (input)
        {
        case tutorialstateinput.LeftTouchpadPressed: setlevel(tutorialstateinput.LeftTouchpadPressed, LeftDragInstruction, tutorialstateinput.LeftTriggerDown, eControllerPart.lefttrigger); break;

        case tutorialstateinput.LeftTriggerDown: setlevel(tutorialstateinput.LeftTriggerDown, LeftGripInstruction, tutorialstateinput.leftGripDown, eControllerPart.leftgrip); break;

        case tutorialstateinput.leftGripDown: setlevel(tutorialstateinput.leftGripDown, LeftMenuInstructions, tutorialstateinput.leftMenuDown, eControllerPart.leftmenu); break;

        case tutorialstateinput.leftMenuDown: setlevel(tutorialstateinput.leftMenuDown, RightSelectallInstructions, tutorialstateinput.RightGripSelectall, eControllerPart.rightGrip); break;

        case tutorialstateinput.RightGripSelectall: setlevel(tutorialstateinput.RightGripSelectall, RightDeSelectallInstructions, tutorialstateinput.RightGripdeselectall, eControllerPart.rightGrip); break;

        case tutorialstateinput.RightGripdeselectall: setlevel(tutorialstateinput.RightGripdeselectall, RightSelectionLineInstructions, tutorialstateinput.RightTouchpadtouch, eControllerPart.rightTouchPad); break;

        case tutorialstateinput.RightTouchpadtouch: setlevel(tutorialstateinput.RightTouchpadtouch, RightOrderInstructions, tutorialstateinput.RightTrigger, eControllerPart.rightTouchPad); break;

        case tutorialstateinput.RightTrigger: setlevel(tutorialstateinput.RightTrigger, GiveAttackOrderInstructions, tutorialstateinput.RightAttackOrder, eControllerPart.rightTrigger); break;

        case tutorialstateinput.RightAttackOrder: setlevel(tutorialstateinput.RightAttackOrder, RightMenuInstructions, tutorialstateinput.RightMenu, eControllerPart.rightMenu); break;

        case tutorialstateinput.RightMenu: setlevel(tutorialstateinput.RightMenu, RightBuyShipInstructions, tutorialstateinput.RightMenuShipBuy, eControllerPart.rightMenu); break;

        case tutorialstateinput.RightMenuShipBuy: setlevel(tutorialstateinput.RightMenuShipBuy, RightGiveWayPointInstructions, tutorialstateinput.RightTriggerGiveWayPoint, eControllerPart.rightTouchPad); break;

        case tutorialstateinput.RightTriggerGiveWayPoint: setlevel(tutorialstateinput.RightTriggerGiveWayPoint, RightGiveLongAttackOrderInstructions, tutorialstateinput.RightTriggerGiveLongAttackOrder, eControllerPart.rightTouchPad); break;

        case tutorialstateinput.RightTriggerGiveLongAttackOrder: StartCoroutine("LeaveGame"); break;
        }
    }
 /// <summary>
 /// This allows you to set the tutorial state manually.
 /// </summary>
 /// <param name="inputstate"></param>
 /// <param name="inputstring"></param>
 /// <param name="nextstate"></param>
 /// <param name="inputpart"></param>
 void setlevel(tutorialstateinput inputstate, string inputstring, tutorialstateinput nextstate, eControllerPart inputpart)
 {
     if ((int)inputstate == (int)curstate + 1)
     {
         tutorialText.text = inputstring;
         curstate          = inputstate;
         showinput(inputpart);
     }
 }