//エンジンをロード 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(); } }