private void HandleEvent(TutorialEvent tutorialEvent)
    {
        switch (tutorialEvent)
        {
        case TutorialEvent.NONE:
            break;

        case TutorialEvent.LOAD_PRESET_LEVEL:
            LevelSelectGUI.currentLevel = Levels.GetLevel(level);
            Loading.Load(level);
            break;

        case TutorialEvent.LOAD_NEXT_LEVEL:
            LoadLevel.LoadALevel("next");
            break;

        case TutorialEvent.START_PLAYER:
            tutorialEnabled = false;

            // Disable buttons
            lastButton.interactable = false;
            nextButton.interactable = false;
            skipButton.interactable = false;

            // Get rid of mainCamera tag
            //tag = "Untagged";

            // Unfreeze camera
            {
                //theCamera.active = true;
                theCamera.GetComponent <LevelStart>().Start();
            }

            // Unfreeze player
            GameObject player = GameObject.Find("Player");
            if (player != null)
            {
                player.GetComponent <Rigidbody>().constraints = RigidbodyConstraints.FreezeRotation;
            }

            // Disable tutorial camera
            //gameObject.active = false;
            this.enabled = false;
            break;

        case TutorialEvent.PLAY_RECORDING:
            string       test = "Recordings/" + points[index].recordingName;
            TextAsset    ta   = (TextAsset)Resources.Load(test);
            Stream       s    = new MemoryStream(ta.bytes);
            BinaryReader br   = new BinaryReader(s);
            GameRecorder.StartPlaybackTutorial(Recording.Read(br));
            break;

        case TutorialEvent.RESET_PLAYER:
            GameRecorder.StopPlayback();
            GameObject.Find("Player").BroadcastMessage("Reload");
            break;
        }
    }