Exemple #1
0
        //エンジンをロード
        IEnumerator LoadEngineAsyncSub()
        {
            //開始ラベルを登録しておく
            if (!string.IsNullOrEmpty(startScenario))
            {
                Engine.StartScenarioLabel = startScenario;
            }

            //ストレージごとに、ロードタイプを設定しておく
            switch (Strage)
            {
            case StrageType.Local:
            case StrageType.LocalAndServerScenario:
                AssetFileManager.InitLoadTypeSetting(AssetFileManagerSettings.LoadType.Local);
                break;

            case StrageType.StreamingAssets:
            case StrageType.StreamingAssetsAndLocalScenario:
                AssetFileManager.InitLoadTypeSetting(AssetFileManagerSettings.LoadType.StreamingAssets);
                break;

            case StrageType.Server:
            case StrageType.ServerAndLocalScenario:
                AssetFileManager.InitLoadTypeSetting(AssetFileManagerSettings.LoadType.Server);
                break;

            default:
                Debug.LogError("Unkonw Strage" + Strage.ToString());
                break;
            }

            //シナリオのロードが必要なものはロードする
            bool needsToLoadScenario = false;

            switch (Strage)
            {
            case StrageType.Local:
            case StrageType.ServerAndLocalScenario:
            case StrageType.StreamingAssetsAndLocalScenario:
                break;

            default:
                needsToLoadScenario = true;
                break;
            }
            if (needsToLoadScenario)
            {
                if (UseChapter)
                {
                    //追加シナリオがDLがされないうちにオートセーブされると、未DLの部分のシステムセーブがない状態で上書きされしまうので
                    //デフォルトの「AdvEnigne SystemSaveData IsAutoSaveOnQuit」はオフにしてある必要がある。
                    if (this.Engine.SystemSaveData.IsAutoSaveOnQuit)
                    {
                        Debug.LogError(
                            "Check Off AdvEnigne SystemSaveData IsAutoSaveOnQuit\n"
                            + "「AdvEnigne SystemSaveData IsAutoSaveOnQuit」のチェックをオフにして起動してください\n"
                            + "チャプター機能を使う場合、追加シナリオをDLする前にシステムセーブデータを上書きされないように、アプリ終了・スリープでのオートセーブを無効にする必要があります");
                        //DL中はオートセーブを解除する
                        this.Engine.SystemSaveData.IsAutoSaveOnQuit = false;
                    }
                    yield return(LoadChaptersAsync(GetDynamicStrageRoot()));
                }
                else
                {
                    yield return(LoadScenariosAsync(GetDynamicStrageRoot()));
                }
            }
            if (this.Scenarios == null)
            {
                Debug.LogError("Scenarios is Blank. Please set .scenarios Asset", this);
                yield break;
            }

            //シナリオとルートパスを指定して、エンジン起動
            //カスタムしてスクリプトを書くときは、最終的にここにくればよい
            switch (Strage)
            {
            case StrageType.Local:
            case StrageType.LocalAndServerScenario:
                Engine.BootFromExportData(this.Scenarios, this.RootResourceDir);
                break;

            default:
                Engine.BootFromExportData(this.Scenarios, GetDynamicStrageRoot());
                break;
            }

            if (isAutomaticPlay)
            {
                //自動再生
                StartEngine();
            }
        }
        //エンジンをロード
        IEnumerator LoadEngineAsyncSub()
        {
            Debug.Log("[AdvEngineStarter] LoadEngineAsyncSub Load From " + Strage);

            //開始ラベルを登録しておく
            if (!string.IsNullOrEmpty(startScenario))
            {
                Engine.StartScenarioLabel = startScenario;
            }

            //ストレージごとに、ロードタイプを設定しておく
            switch (Strage)
            {
            case StrageType.Local:
            case StrageType.LocalAndServerScenario:
                AssetFileManager.InitLoadTypeSetting(AssetFileManagerSettings.LoadType.Local);
                break;

            case StrageType.StreamingAssets:
            case StrageType.StreamingAssetsAndLocalScenario:
                AssetFileManager.InitLoadTypeSetting(AssetFileManagerSettings.LoadType.StreamingAssets);
                break;

            case StrageType.Server:
            case StrageType.ServerAndLocalScenario:
                AssetFileManager.InitLoadTypeSetting(AssetFileManagerSettings.LoadType.Server);
                break;

            default:
                Debug.LogError("Unkonw Strage" + Strage.ToString());
                break;
            }

            //シナリオのロードが必要なものはロードする
            bool needsToLoadScenario = false;

            switch (Strage)
            {
            case StrageType.Local:
            case StrageType.ServerAndLocalScenario:
            case StrageType.StreamingAssetsAndLocalScenario:
                break;

            default:
                needsToLoadScenario = true;
                break;
            }
            if (needsToLoadScenario)
            {
                if (UseChapter)
                {
                    yield return(LoadChaptersAsync(FilePathUtil.Combine(GetDynamicStrageRoot(), this.RootResourceDir + "_Root"))); // yield return LoadChaptersAsync(GetDynamicStrageRoot());
                }
                else
                {
                    yield return(LoadScenariosAsync(FilePathUtil.Combine(GetDynamicStrageRoot(), this.RootResourceDir + "_Root")));  // yield return LoadScenariosAsync(GetDynamicStrageRoot());
                }
            }
            if (this.Scenarios == null)
            {
                Debug.LogError("Scenarios is Blank. Please set .scenarios Asset", this);
                yield break;
            }

            //シナリオとルートパスを指定して、エンジン起動
            //カスタムしてスクリプトを書くときは、最終的にここにくればよい
            switch (Strage)
            {
            case StrageType.Local:
            case StrageType.LocalAndServerScenario:
                Engine.BootFromExportData(this.Scenarios, this.RootResourceDir);
                break;

            default:
                var root = FilePathUtil.Combine(GetDynamicStrageRoot(), this.RootResourceDir + "_Root");
                Engine.BootFromExportData(this.Scenarios, root, this.RootResourceDir);     // Engine.BootFromExportData(this.Scenarios, GetDynamicStrageRoot(), this.RootResourceDir );
                break;
            }

            if (isAutomaticPlay)
            {
                //自動再生
                StartEngine();
            }
        }