//Move textbox offscreen and bring back with new text
    public static void ChangeText(string message, bool maintext = true)
    {
        var stateinfo = Singleton.animator.GetCurrentAnimatorStateInfo(0);

        if (maintext)
        {
            Singleton.MainText = message;
        }

        if (stateinfo.IsName("OffScreen"))
        {
            ShowNewText(message);
        }
        else
        {
            HideTextBox();
            Singleton.StopAllCoroutines();
            Singleton.StartCoroutine(Singleton.WaitForTextToLeaveScreen(message));
        }
    }
 public void ExecuteAnimation(int textLineNum)
 {
     for (int i = 0; i < charactor.Length; i++)//再生中のほかのキャラクターのAnimationをスキップ
     {
         charactor[i].GetComponent <Charactor>().SkipAnim();
     }
     for (int i = actionCount; i < eventLine.Length; i++)
     {
         if (eventLine[i] == textLineNum)
         {
             if (eventName[actionCount] == "")
             {
                 actionCount++;
                 continue;
             }
             else if (eventName[actionCount] == "InvokeAnim")
             {//時間指定でAnimation命令
                 StartCoroutine(InvokeExecuteAnimation(arrayNum[actionCount], textLineNum));
                 TextController.TextControl = false;
                 eventName[actionCount]     = "";
                 break;
             }
             else if (eventName[actionCount] == "Sound")
             {//音声再生
                 audioSource.clip = audioClip[arrayNum[actionCount]];
                 audioSource.Play();
             }
             else if (eventName[actionCount] == "CgView")
             {//CG表示
                 stillView.sprite = stillPictures[arrayNum[actionCount]];
                 Debug.Log(stillView.sprite.name.Length - 1);
                 string removeString = stillView.sprite.name.Remove(stillView.sprite.name.Length - 1, 1);//差分の枚数が9枚までしか作れないクソ仕様
                 if (!PlayerPrefs.HasKey(removeString))
                 {
                     PlayerPrefs.SetInt(removeString, 1);
                 }
                 StartCoroutine("FadeIn");
             }
             else if (eventName[actionCount] == "CgDel")
             {//CG非表示
                 StartCoroutine("FadeOut");
             }
             else if (eventName[actionCount] == "CgMove")
             {
                 StartCoroutine(StillAnimFade(arrayNum[actionCount].ToString()));
             }
             else if (eventName[actionCount] == "CgChange")
             {
                 string removeString = stillView.sprite.name.Remove(stillView.sprite.name.Length - 1, 1);
                 Debug.Log(removeString);
                 PlayerPrefs.SetInt(removeString, PlayerPrefs.GetInt(removeString, PlayerPrefs.GetInt(removeString, 0)) + 1);
                 StartCoroutine(StillChange(arrayNum[actionCount]));
             }
             else if (eventName[actionCount] == "TextBoxFade")
             {//Textbox表示切り替え
                 textBoxController.StartCoroutine("TextBoxFade", arrayNum[actionCount]);
             }
             else if (eventName[actionCount] == "SetBackImage")
             {//背景変更
                 backImageManeger.SetBackGroundImage(arrayNum[actionCount]);
             }
             else if (eventName[actionCount] == "SetFadeColor")
             {//背景のFadeColorを変更:0は黒,1は白
                 backImageManeger.SetFadeColor(arrayNum[actionCount]);
             }
             else if (eventName[actionCount] == "BackFadeView")
             {//背景Fadeしながら表示
                 backImageManeger.FadeView(arrayNum[actionCount]);
             }
             else if (eventName[actionCount] == "BackFadeOut")
             {//背景Fadeしながら非表示
                 backImageManeger.FadeOut(arrayNum[actionCount]);
             }
             else if (eventName[actionCount] == "FadeView")
             {//背景Fadeしながら表示,TextBoxも
                 backImageManeger.FadeView(arrayNum[actionCount]);
                 textBoxController.StartCoroutine("TextBoxFade", arrayNum[actionCount]);
             }
             else if (eventName[actionCount] == "FadeOut")
             {//背景Fadeしながら非表示,TextBoxも
                 backImageManeger.FadeOut(arrayNum[actionCount]);
                 textBoxController.StartCoroutine("TextBoxFade", arrayNum[actionCount]);
             }
             else if (eventName[actionCount] == "SwitchPos")//綴りミスるな
             {
                 charactor[arrayNum[actionCount]].GetComponent <Charactor>().SwichPos(nextOrder[nextOrderNum]);
                 nextOrderNum++;
             }
             else if (eventName[actionCount] == "ChangeSprite")
             {
                 charactor[arrayNum[actionCount]].GetComponent <Charactor>().StartCoroutine("ChangeSpriteCor", nextOrder[nextOrderNum]);
                 SortCharactorLayer();
                 nextOrderNum++;
             }
             else if (eventName[actionCount] == "End")
             {
                 textBoxController.StartCoroutine("TextBoxFade", arrayNum[actionCount]);
                 backImageManeger.FadeOut(arrayNum[actionCount]);
                 Invoke("LoadScene", arrayNum[actionCount] * 0.1f);
             }
             else
             {                                              //Charactorアニメーション再生
                 if (eventName[actionCount] == "ChangePos") //Charactorの位置チェンジ
                 {
                     charactor[arrayNum[actionCount]].GetComponent <Charactor>().StartCoroutine("ChangePosCor", nextOrder[nextOrderNum]);
                     nextOrderNum++;
                 }
                 else
                 {
                     charactor[arrayNum[actionCount]].GetComponent <Charactor>().Invoke(eventName[actionCount], 0);
                     SortCharactorLayer();
                 }
             }
             actionCount++;//次のアクションへ
         }
     }
 }