/// <summary>
    /// It is called when a step is completed, transiting to the next step, or next phase
    /// </summary>
    public void CompleteStep()
    {
        Debug.Log("Completing step");
        //Write on .json the answers
        if ((numberOfSteps - 1) == actualStep)
        {
            cutsceneController.PlayEndingScene();
            //Debug.Log("PhaseTransition will be called");
            //this.PhaseTransition ();
        }
        else
        {
            Debug.Log("Step number " + "JournalUIItem" + actualStep.ToString());
            GameObject.Find("JournalUIItem" + actualStep.ToString()).GetComponent <JournalUIItem>().checkItem();
            actualStep++;

            /*
             * Play ending dialogue accoding to step, if needed;
             */
            this.NewStep();
        }
    }
    /// <summary>
    /// It is called when a step is completed, transiting to the next step, or next phase
    /// </summary>
    public void CompleteStep()
    {
        Debug.Log("Completing step");
        //Write on .json the answers
        if ((numberOfSteps - 1) == actualStep)
        {
            cutsceneController.PlayEndingScene();
            //Debug.Log("PhaseTransition will be called");
            //this.PhaseTransition ();
        }
        else
        {
            GameObject.Find("HUDController").GetComponentInChildren <TabletController> ().ExperimentState.GetComponent <ExperimentsState> ().CompleteStage(actualStep);

            actualStep++;
            GameObject.Find("HUDController").GetComponentInChildren <TabletController> ().ExperimentState.GetComponent <ExperimentsState>().EnableTab(actualStep);

            /*
             * Play ending dialogue accoding to step, if needed;
             */
            this.NewStep();
        }
    }