void Update()
    {
        #region Background Control

        if (scenes[currentscene].livebackground.Length <= 0)
        {
            livebackground.gameObject.SetActive(false);
        }
        else
        {
            livebackground.gameObject.SetActive(true);

            if (livebackground.movie.Length != scenes[currentscene].livebackground.Length)
            {
                livebackground.movie = new MovieTexture[scenes[currentscene].livebackground.Length];
                for (int i = 0; i < scenes[currentscene].livebackground.Length; i++)
                {
                    livebackground.movie[i] = scenes[currentscene].livebackground[i];
                }
            }

            livebackground.UpdateLiveBackground();
        }

        if (scenes[currentscene].backgrounds.Length <= 0)
        {
            background.gameObject.SetActive(false);
        }
        else
        {
            background.gameObject.SetActive(true);
            background.backgroundimage.sprite = scenes[currentscene].backgrounds[background.currentbackground];
        }

        #endregion
        #region Dialog Control

        UpdateSpeakerName();

        PrepareAnswersMoments();

        dialogbox.DialogUpdate();

        AdjustDialogDisplayBoxToNextDialog();

        AdjustDialogDisplayBoxToNextScene();

        dialogbox.scene = scenes[currentscene];

        #endregion
        #region Actors Control

        PrepareActorDialogLines();

        for (int i = 0; i < actors.Length; i++)
        {
            actors[i].hasdialog = CheckActorDialogLines(actors[i]);
            if (actors[i].hasdialog)
            {
                actors[i].gameObject.SetActive(true);
            }
            else
            {
                actors[i].gameObject.SetActive(false);
            }
        }

        #endregion
        #region Scene Control

        TimeToSetScene();

        #endregion
        #region Game Control

        CheckIfTheDialogEndGoToNextScene();

        NavegateScenes();

        CheckGameOverPlayDeathAnimationAndEndGame();

        #endregion
        #region Player Control

        if (Input.GetButtonDown("Submit"))
        {
            if (canprogress)
            {
                dialogbox.Processed();
            }
        }

        #endregion
    }
    void Update()
    {
        #region Background Control

        if (scenes[currentscene].livebackground.Length <= 0)
        {
            livebackground.gameObject.SetActive(false);
        }
        else
        {
            livebackground.gameObject.SetActive(true);

            if (livebackground.movie.Length != scenes[currentscene].livebackground.Length)
            {
                livebackground.movie = new MovieTexture[scenes[currentscene].livebackground.Length];
                for (int i = 0; i < scenes[currentscene].livebackground.Length; i++)
                {
                    livebackground.movie[i] = scenes[currentscene].livebackground[i];
                }
            }

            livebackground.UpdateLiveBackground();
        }

        if (scenes[currentscene].backgrounds.Length <= 0)
        {
            background.gameObject.SetActive(false);
        }
        else
        {
            background.gameObject.SetActive(true);
            background.backgroundimage.sprite = scenes[currentscene].backgrounds[background.currentbackground];
        }

        #endregion
        #region Music Control

        if (musicplayer.music.volume != gamesettings.musicvolume)
        {
            musicplayer.music.volume = gamesettings.musicvolume;
        }

        if (musicplayer.endatmusicclip != scenes[currentscene].musics.Length)
        {
            musicplayer.LimitMusicLengh(scenes[currentscene].musics.Length - 1);
        }

        if (scenes[currentscene].musics.Length > 0)
        {
            musicplayer.music.clip = scenes[currentscene].musics[musicplayer.currentmusicclip];
        }

        if (!musicplayer.music.isPlaying)
        {
            musicplayer.NextMusic();
        }

        #endregion
        #region Dialog Control

        PrepareAnswersMoments();

        dialogbox.DialogUpdate();

        UploadAnswersValue();

        AdjustDialogDisplayBoxToNextDialog();

        dialogbox.scene = scenes[currentscene];

        #endregion
        #region Actors Control

        PrepareActorDialogLines();

        for (int i = 0; i < actors.Length; i++)
        {
            actors[i].hasdialog = CheckActorDialogLines(actors[i]);
            if (actors[i].hasdialog)
            {
                actors[i].gameObject.SetActive(true);
            }
            else
            {
                actors[i].gameObject.SetActive(false);
            }
        }

        #endregion
        #region ObjectsI Control

        UpdateObjectIScene();

        LoadObjectsIInCurrentScene();

        UpdateObjectIVolume();

        #endregion
        #region Puzzle Control

        UpdatePuzzleScene();

        UpdatePuzzle();

        LoadPuzzleInCurrentScene();

        UpdatePuzzleIVolume();

        CheckIfPlayerHasResolvedPuzzle();

        #endregion
        #region Scene Control

        /*
         * UpdateSceneBehaviours();
         *
         * ActiveCurrentSceneAndDisableOthers();
         */
        ManageScenes();

        #endregion
        #region Game Control

        GoToGameSceneWhen();

        SaveAllGameAndPlayerDataOfCurrentGame();

        #endregion
        #region Player Control

        if (Input.GetButtonDown("Confirm"))
        {
            if (canprogress)
            {
                dialogbox.Processed();
            }
        }

        if (Input.GetButtonDown("Pause"))
        {
            if (pausemenu.gameObject.activeInHierarchy)
            {
                pausemenu.hideactors = false;
                pausemenu.affinitybarbox.SetActive(false);
                pausemenu.helpbox.SetActive(false);
                pausemenu.gameObject.SetActive(false);
            }
            else
            {
                pausemenu.OnClickPauseGame();
            }
        }

        #endregion
        #region Player Eye Control

        playereyesfilter.hasaction = CheckPlayerEyesActionMoments();

        UpdateCameraEyeMoments();

        UpdateCameraEyeEffect();

        playereyesfilter.CameraEyesUpdate();

        #endregion
    }