//
    void Awake()
    {
        Debug.Log("Awake");
        Debug.Log(SceneManager.GetActiveScene().name);


        Object.DontDestroyOnLoad(this);

        saveDataJSON01 = new Dictionary <string, object>();
        saveDataJSON02 = new Dictionary <string, object>();
        saveDataJSON03 = new Dictionary <string, object>();

        if (_debugDataReset)
        {
            PlayerPrefs.DeleteAll();
        }

        this.initSaveData(0);
        this.initSaveData(1);
        this.initSaveData(2);

        //初期値
        //各シーンからこの値を参照し、適正な値が入っている場合は正規の手順を踏む
        //もしそれ以外だった場合、デバッグモードで起動する
        //参照は getNowSceneを使用する
        nowSceneValue = new sceneChangeValue();

        //Titleだった場合はデータ選択時にこの処理をしているので不要
        if (Application.loadedLevelName != "title")
        {
            //for debug
            selectedUserSaveDat    = saveDataJSON01;
            selectedSaveDataNumber = 0;
            nowSceneValue.convertSelectedUserSaveData();
        }
    }
    //**//


    public void changeScene(sceneChangeStatusEnum argsS)
    {
        //他の場所から呼ばれる

        sceneChangeValue tmpSCV = new sceneChangeValue();

        tmpSCV.convertSelectedUserSaveData();

        //時間は戻す
        Time.timeScale = 1f;

        switch (argsS)
        {
        case sceneChangeStatusEnum.dataLoading:
            // argsVal は必要ない
            //セーブデータから確認する

            //chapter進捗を確認しどこに移動するか決める

            object tmpPgrs = selectedUserSaveDat[storyProgress_Key];

            switch (int.Parse(tmpPgrs.ToString()))
            {
            case 0:
                //now Game
                //Application.LoadLevel("talkScene");
                SceneManager.LoadScene("talkScene");

                break;

            default:
                //基本ここ
                //ステージセレクトへ移動
                //Application.LoadLevel("stageSelect");
                SceneManager.LoadScene("stageSelect");
                break;
            }

            break;

        case sceneChangeStatusEnum.gotoTitle:
            // argsVal は必要ない
            //Application.LoadLevel("title");
            SceneManager.LoadScene("title");
            break;

        case sceneChangeStatusEnum.gotoTalkScene:
            //下記の関数がスタートする
            //talkScene - talkingMain - mainText - talkingMainScript - Start()
            //Application.LoadLevel("talkScene");
            SceneManager.LoadScene("talkScene");

            break;

        case sceneChangeStatusEnum.gotoStageSelect:
            //Debug.Log ("stageSelect");
            //Application.LoadLevel("stageSelect");
            SceneManager.LoadScene("stageSelect");

            break;

        case sceneChangeStatusEnum.gotoSortieSelect:
            //Debug.Log ("gotoSortieSelect");
            //Application.LoadLevel("selectSortieCharactersScene");
            SceneManager.LoadScene("selectSortieCharactersScene");

            break;

        case sceneChangeStatusEnum.gotoBattle:
            //Debug.Log ("goto Battle : " + tmpSCV.sceneFileName);
            //Application.LoadLevel(tmpSCV.sceneFileName);
            SceneManager.LoadScene(tmpSCV.sceneFileName);
            break;
        }
    }
    public void addStoryProgresses(enum_StoryProgressType argsStr, bool resetF)
    {
        //下位の進行度は、自動的にリセットされる

        switch (argsStr)
        {
        case enum_StoryProgressType.Route:
            // StoryRoute
            long tmpRoute = (long)selectedUserSaveDat["StoryRoute"];

            if (resetF)
            {
                selectedUserSaveDat["StoryRoute"] = 0;
            }
            else
            {
                selectedUserSaveDat["StoryRoute"] = tmpRoute + 1;
            }
            break;

        case enum_StoryProgressType.Progress:
            //storyProgress_Key
            int tmpProgress = int.Parse(selectedUserSaveDat[storyProgress_Key].ToString());
            if (resetF)
            {
                selectedUserSaveDat[storyProgress_Key] = 0;
            }
            else
            {
                selectedUserSaveDat[storyProgress_Key] = tmpProgress + 1;
                this.addStoryProgresses(enum_StoryProgressType.Stage, true);
                this.addStoryProgresses(enum_StoryProgressType.Step, true);
            }
            break;

        case enum_StoryProgressType.Stage:
            //storyStage_Key
            int tmpStage = int.Parse(selectedUserSaveDat[storyStage_Key].ToString());

            if (resetF)
            {
                selectedUserSaveDat[storyStage_Key] = 0;
            }
            else
            {
                selectedUserSaveDat[storyStage_Key] = tmpStage + 1;
                this.addStoryProgresses(enum_StoryProgressType.Step, true);
            }
            break;

        case enum_StoryProgressType.Step:
            // StoryStep
            int tmpStep = int.Parse(selectedUserSaveDat["StoryStep"].ToString());

            if (resetF)
            {
                selectedUserSaveDat["StoryStep"] = 0;
            }
            else
            {
                selectedUserSaveDat["StoryStep"] = tmpStep + 1;
            }
            break;
        }

        nowSceneValue.convertSelectedUserSaveData();

        Debug.Log("進捗増加 : " + nowSceneValue.sceneFileName);
    }