public void StartDream()
    {
        _sun.UpdateSunWhileSleeping();
        _needs.UpdateHungerWhileSleeping();
        _dayManager.UpdateTimeWhileSleeping();

        #region Update hasBeenTo bools
        if (mountain_door || mountain_plant)
        {
            hasBeenToMountain = true;
        }
        if (columns_water || columns_idol)
        {
            hasBeenToColumns = true;
        }
        if (fire_fire || fire_thrones)
        {
            hasBeenToFire = true;
        }

        #endregion

        //Determines which dream to start, then starts it.
        if (!hasBeenToMountain)
        {
            LoadScene(Scenes.Mountain);
            m_CamBackground.SetBackgroundColor(mountainSkyColor);
            _dreamText.SetDreamText(_dreamText.mountain_intro);
        }
        else if (!hasBeenToColumns && (mountain_plant || hasBeenToFire))
        {
            LoadScene(Scenes.Columns);
            m_CamBackground.SetBackgroundColor(columnSkyColor);
            _dreamText.SetDreamText(_dreamText.columns_intro);
        }
        else if (!hasBeenToFire && (mountain_door || hasBeenToColumns))
        {
            LoadScene(Scenes.Fire);
            m_CamBackground.SetBackgroundColor(fireSkyColor);
            _dreamText.SetDreamText(_dreamText.fire_intro);
        }
        else
        {
            _dreamText.SetDreamText("You have reached the end. What have you learned?");
        }

        _needs.ToggleHungerEffects(false);
        _cellManager.ShowHideCell(false);
        QualitySettings.shadowDistance = 100;
        _FPSController.SetWalkSpeed(3);
    }