public void OnClickOver() { m_MainMenuCanvas.gameObject.SetActive(false); //m_GSaveData.m_Rounds += 1; m_title.Close(); m_MainGame.OpenStartLabel("Start"); }
public void OnClickSave() { m_MainGame.gameObject.SetActive(true); m_MainMenuCanvas.gameObject.SetActive(false); //m_WarNode.gameObject.SetActive(false); m_title.Close(); m_MainGame.OpenStartLabel("SaveLoad"); m_MainGame.OnTapSave(); }
IEnumerator LoadChaptersAsync(int chapterIndex) { //指定した章よりも前の章はロードする必要がある for (int i = 0; i < chapterIndex + 1; ++i) { string url = chapterUrlList[i]; //もう設定済みならロードしない if (this.Engine.ExitsChapter(url)) { continue; } //ロード自体はこれだけ //ただし、URLは // http://madnesslabo.net/Utage3Chapter/Windows/chapter2.chapter.asset //のように、Windowsなどのプラットフォーム別にフォルダわけなどを終えた絶対URLが必要 yield return(this.Engine.LoadChapterAsync(url)); } //設定データを反映 this.Engine.GraphicManager.Remake(this.Engine.DataManager.SettingDataManager.LayerSetting); //パラメーターをデフォルト値でリセット //これは場合によってはリセットしたくない場合もあるので、あえて外にだす this.Engine.Param.InitDefaultAll(this.Engine.DataManager.SettingDataManager.DefaultParam); //リソースファイルのダウンロードを進めておく this.Engine.DataManager.DownloadAll(); //ロード待ちのための画面遷移 title.Close(); loadWait.OpenOnChapter(); loadWait.onClose.RemoveAllListeners(); loadWait.onClose.AddListener( () => { mainGame.Open(); this.Engine.StartGame(startLabel[chapterIndex]); } ); }
IEnumerator LoadChaptersAsync(int chapterIndex) { //追加シナリオがDLがされないうちにオートセーブされると、未DLの部分のシステムセーブがない状態で上書きされしまうので //デフォルトの「AdvEnigne SystemSaveData IsAutoSaveOnQuit」はオフにしてある必要がある。 if (this.Engine.SystemSaveData.IsAutoSaveOnQuit) { Debug.LogError("Check Off AdvEnigne SystemSaveData IsAutoSaveOnQuit"); //DL中はオートセーブを解除する this.Engine.SystemSaveData.IsAutoSaveOnQuit = false; } //今のパラメーターをバイナリデータとしてとっておく //パラメーターをリセットせずに章を追加ロードしたいときに byte[] bufferDefaultParam = null; byte[] bufferSystemParam = null; if (!resetParam) { bufferDefaultParam = BinaryUtil.BinaryWrite((writer) => engine.Param.Write(writer, AdvParamData.FileType.Default)); bufferSystemParam = BinaryUtil.BinaryWrite((writer) => engine.Param.Write(writer, AdvParamData.FileType.System)); } //指定した章よりも前の章はロードする必要がある for (int i = 0; i < chapterIndex + 1; ++i) { string url = chapterUrlList[i]; //もう設定済みならロードしない if (this.Engine.ExitsChapter(url)) { continue; } //ロード自体はこれだけ //ただし、URLは // http://madnesslabo.net/Utage3Chapter/Windows/chapter2.chapter.asset //のように、Windowsなどのプラットフォーム別にフォルダわけなどを終えた絶対URLが必要 yield return(this.Engine.LoadChapterAsync(url)); } //設定データを反映 this.Engine.GraphicManager.Remake(this.Engine.DataManager.SettingDataManager.LayerSetting); //パラメーターをデフォルト値でリセット //これは場合によってはリセットしたくない場合もあるので、あえて外にだす this.Engine.Param.InitDefaultAll(this.Engine.DataManager.SettingDataManager.DefaultParam); //パラメーターの引継ぎ方法は以下のように、いろいろある //(ややこしいが、ゲーム起動時なのか、ゲームの最中なのか、そもそもチャプター機能をどう使うかを宴側からは制御できないのでこうなる) //その1。メモリ内にとってある場合 //バイナリデータから読み取る if (!resetParam) { BinaryUtil.BinaryRead(bufferDefaultParam, (reader) => engine.Param.Read(reader, AdvParamData.FileType.Default)); BinaryUtil.BinaryRead(bufferSystemParam, (reader) => engine.Param.Read(reader, AdvParamData.FileType.System)); } //その2。オートセーブのパラメーターだけをロードする //同じやり方で任意のセーブファイルのパラメーターだけをロードするのも可能 if (readAutoSaveDataParamOnly) { //オートセーブデータをロード this.Engine.SaveManager.ReadAutoSaveData(); AdvSaveData autoSave = this.Engine.SaveManager.AutoSaveData; if (autoSave != null && autoSave.IsSaved) { autoSave.Buffer.Overrirde(this.Engine.Param.DefaultData); } } //その3。 //システムセーブデータをロードする //ファイルからロードするので、事前に書き込みされてないとダメ //チャプターロードを使う場合は、システムセーブデータの読み込みがされないので //一度はこれを使う if (readSystemSaveData) { this.Engine.SystemSaveData.Init(this.Engine); } //システムセーブデータのオートセーブはここで設定する this.Engine.SystemSaveData.IsAutoSaveOnQuit = this.isAutoSaveOnQuit; //リソースファイルのダウンロードを進めておく this.Engine.DataManager.DownloadAll(); //ロード待ちのための画面遷移 title.Close(); loadWait.OpenOnChapter(); loadWait.onClose.RemoveAllListeners(); loadWait.onClose.AddListener( () => { mainGame.Open(); //StartGameはシステム系以外のパラメーターがリセットされてしまうので //パラメーターを引き継がない場合のみStartGame if (resetParam && !readAutoSaveDataParamOnly) { this.Engine.StartGame(startLabel[chapterIndex]); } else { this.Engine.JumpScenario(startLabel[chapterIndex]); } } ); }
IEnumerator LoadChaptersAsync(int chapterIndex) { string url = chapterUrlList[chapterIndex]; //もう設定済みならロードしない if (!this.Engine.ExitsChapter(url)) { yield return(this.Engine.LoadChapterAsync(url)); } //設定データを反映 this.Engine.GraphicManager.Remake(this.Engine.DataManager.SettingDataManager.LayerSetting); //DL前にファイルサイズを取得する場合・・・ int sumSize = 0; //合計ファイルサイズ //ファイルのセット var fileSet = this.Engine.DataManager.GetAllFileSet(); foreach (var file in fileSet) { AssetFileBase assetFile = file as AssetFileBase; if (assetFile == null) { Debug.LogError("Not Support Type"); continue; } else { //DL済みかチェック if (!assetFile.CheckCacheOrLocal()) { //未DLのファイルのサイズを加算 sumSize += assetFile.FileInfo.AssetBundleInfo.Size; //!注 //AssetBundleInfo.Sizeは、デフォルトでは0. //宴が使っている、Unity公式のアセットバンドルマニフェストにはファイルサイズの情報がないため、 //SampleCustomAssetBundleLoad.csを参考に //事前に独自で、アセットバンドルのサイズを設定しておく必要がある。 } } } Debug.Log("DownLoad Size = 0"); //シナリオ内で使用するファイルのみロード //Textureシートなどで定義だけされているものはDLしない this.Engine.DataManager.DownloadAllFileUsed(); //ロード待ちのための画面遷移 title.Close(); loadWait.OpenOnChapter(); loadWait.onClose.RemoveAllListeners(); loadWait.onClose.AddListener( () => { mainGame.Open(); this.Engine.JumpScenario(startLabel[chapterIndex]); } ); }