private void InstanceStartDanceMode(PCDanceAction pcDanceAction)
    {
        // First we request garbage collection. This way hopefully, there will be
        //  no carbage collection while minigame is on.
        System.GC.Collect();

        this.pcDanceAction = pcDanceAction;
        beatMarkers = new ArrayList();
        //lastUpdate = GameTime.GetRealTimeSecondsPassed();
        currentBeat=0;
        hotMode=false;
        hotModeBeat=0;
        lastBeat=-1;
        beat=0;
        coreographyEnded = false;
        danceModeEnded = false;
        successesInRow=0;
        score=0;

        correntHits=0;
        errors=0;

        lastMissPressTime = Time.time;
        lastPressTime = Time.time;
        //myPaused=false;
        //sceneLightDefaultColor=sceneLight.color;
        //sceneLightDefaultIntensity=sceneLight.intensity;
        GameTime.SetGUIVisible(false);
        pc = CharacterManager.GetPC();
        if(PlayerPrefs.GetInt("ToolTip") == 1) {
            state = STATES.SHOW_QUICK_HELP;
            dialogEnabledTime = Time.time;
        }
        else {
            state = STATES.MINIGAME;
            StartTheBeat();
        }

        TaskHelp.Hide();

        CameraController.SetDanceCameraAngle();
    }
 public static void StartDanceMode(PCDanceAction pcDanceAction)
 {
     instance.InstanceStartDanceMode(pcDanceAction);
 }