示例#1
0
 //コマンドスレッド終了
 void OnEndThread()
 {
     IsPlaying = false;
     if (IsMainThread)
     {
         ScenarioPlayer.EndScenario();
     }
     else
     {
         Destroy(this);
     }
 }
示例#2
0
 /// <summary>
 /// シナリオ終了
 /// </summary>
 public void EndScenario()
 {
     ScenarioPlayer.EndScenario();
 }
示例#3
0
 /// <summary>
 /// シナリオ終了
 /// </summary>
 public void EndScenario()
 {
     ScenarioPlayer.EndScenario();
     isWaitBootLoading = true;
 }
示例#4
0
 /// <summary>
 /// シナリオ終了
 /// </summary>
 public void EndScenario()
 {
     Clear();
     ScenarioPlayer.EndScenario();
 }
示例#5
0
        //指定のシナリオを再生
        IEnumerator CoStartScenario(string label, int page, AdvCommand returnToCommand, bool skipPageHeaer)
        {
            IsPlaying           = true;
            SkipPageHeaerOnSave = false;
            //ジャンプ先のシナリオラベルのログを出力
            if (ScenarioPlayer.DebugOutputLog)
            {
                Debug.Log("Jump : " + label + " :" + page);
            }

            //起動時のロード待ち
            while (Engine.IsLoading)
            {
                yield return(null);
            }


            //シナリオロード待ち
            IsLoading = true;
            while (!Engine.DataManager.IsLoadEndScenarioLabel(label))
            {
                yield return(null);
            }
            IsLoading = false;

            //各データをリセット
            ResetOnJump();

            if (page < 0)
            {
                page = 0;
            }

            //セーブデータにサブスレッドがある場合に再開
            LoadSubThreadSaveData();


            //ジャンプ先のシナリオデータを取得
            AdvScenarioLabelData currentLabelData = Engine.DataManager.FindScenarioLabelData(label);

            while (currentLabelData != null)
            {
                ScenarioPlayer.UpdateSceneGallery(currentLabelData.ScenarioLabel, Engine);
                AdvScenarioPageData currentPageData = currentLabelData.GetPageData(page);
                //ページデータを取得
                while (currentPageData != null)
                {
                    //プリロードを更新
                    UpdatePreLoadFiles(currentLabelData.ScenarioLabel, page);

                    ///ページ開始処理
                    if (IsMainThread)
                    {
                        Engine.Page.BeginPage(currentPageData);
                    }

                    //0フレーム即コルーチンが終わる場合を考えてこう書く
                    var pageCoroutine = StartCoroutine(CoStartPage(currentLabelData, currentPageData, returnToCommand, skipPageHeaer));
                    if (pageCoroutine != null)
                    {
                        yield return(pageCoroutine);
                    }
                    currentCommand  = null;
                    returnToCommand = null;
                    skipPageHeaer   = false;
                    //ページ終了処理
                    if (IsMainThread)
                    {
                        Engine.Page.EndPage();
                    }
                    if (IsBreakCommand)
                    {
                        if (IsMainThread && ScenarioPlayer.IsReservedEndScenario)
                        {
                            ScenarioPlayer.EndScenario();
                            yield break;
                        }
                        else
                        {
                            if (JumpManager.IsReserved)
                            {
                                JumpToReserved();
                                yield break;
                            }
                            else
                            {
                                OnEndThread();
                                yield break;
                            }
                        }
                    }
                    currentPageData = currentLabelData.GetPageData(++page);
                }
                //ロード直後処理終了
                IfManager.OldSaveDataStart = false;
                currentLabelData           = Engine.DataManager.NextScenarioLabelData(currentLabelData.ScenarioLabel);
                page = 0;
            }
            OnEndThread();
        }