//最初のページ(とその自動ジャンプ先)のリソースファイルをファイルセットに追加 void PreloadDeep(AdvDataManager dataManager, HashSet <AssetFile> fileSet, int maxFilePreload, int deepLevel) { //フラグを考慮しないので、循環参照による無限参照を回避、階層は5階層までしか拾わない if (deepLevel <= 0) { return; } --deepLevel; if (PageNum <= 0) { return; } if (fileSet.Count >= maxFilePreload) { return; } //最初のページのみプリロード GetPageData(0).AddToFileSet(fileSet); if (fileSet.Count >= maxFilePreload) { return; } //最初のページに自動分岐があれば、さらにその先をプリロード GetPageData(0).GetAutoJumpLabels(dataManager).ForEach( x => { if (x != null) { x.PreloadDeep(dataManager, fileSet, maxFilePreload, deepLevel); } }); }
//指定のページ移行のファイルをプリロード internal HashSet <AssetFile> MakePreloadFileListSub(AdvDataManager dataManager, int page, int maxFilePreload, int preloadDeep) { AdvScenarioLabelData data = this; HashSet <AssetFile> fileSet = new HashSet <AssetFile>(); do { for (int j = page; j < data.PageNum; ++j) { data.GetPageData(j).AddToFileSet(fileSet); if (fileSet.Count >= maxFilePreload) { return(fileSet); } } //ジャンプなどがあるので、このページでいったん先読みの区切り if (data.IsEndPreLoad()) { //ジャンプ先もプリロードする data.PreloadDeep(dataManager, page, fileSet, maxFilePreload, preloadDeep); break; } page = 0; data = data.Next; } while (data != null); return(fileSet); }
//自動ジャンプ先のシナリオデータ internal List <AdvScenarioLabelData> GetAutoJumpLabels(AdvDataManager dataManager) { if (AutoJumpLabelList != null) { return(AutoJumpLabelList); } this.AutoJumpLabelList = new List <AdvScenarioLabelData>(); this.CommandList.ForEach( command => { ///このシナリオからリンクするジャンプ先のシナリオラベルを取得 string[] jumpLabels = command.GetJumpLabels(); if (jumpLabels != null) { if (command is AdvCommandJump || command is AdvCommandJumpRandom || command is AdvCommandJumpSubroutine || command is AdvCommandJumpSubroutineRandom) { foreach (var jumpLabel in jumpLabels) { AutoJumpLabelList.Add(dataManager.FindScenarioLabelData(jumpLabel)); } } } }); return(AutoJumpLabelList); }
/// <summary> /// バックグランドでダウンロードだけする /// </summary> /// <param name="dataManager">各種設定データ</param> public void Download(AdvDataManager dataManager) { foreach (var keyValue in ScenarioLabels) { keyValue.Value.Download(dataManager); } isAlreadyBackGroundLoad = true; }
public void Download(AdvDataManager dataManager) { foreach (KeyValuePair <string, AdvScenarioLabelData> pair in this.ScenarioLabels) { pair.Value.Download(dataManager); } this.isAlreadyBackGroundLoad = true; }
/// <summary> /// バックグランドでダウンロードだけする /// </summary> /// <param name="dataManager">各種設定データ</param> public void Download(AdvDataManager dataManager) { foreach (AdvCommand command in commandList) { command.Download(); } isAlreadyBackGroundLoad = true; }
//DL処理する public void Download(AdvDataManager dataManager) { if (null != loadFileList) { foreach (AssetFile file in loadFileList) { AssetFileManager.Download(file); } } }
/// <summary> /// 起動時の初期化 /// </summary> /// <param name="resourceDir">リソースディレクトリ</param> public void BootInit(string resourceDir, AdvDataManager dataManager = null) { this.ResourceDir = resourceDir; bool autoChangeSoundExt = false; if (dataManager != null) { autoChangeSoundExt = dataManager.LegacyAutoChangeSoundExt; } characterDirInfo = new DefaultDirInfo { defaultDir = @"Texture/Character", defaultExt = ".png" }; bgDirInfo = new DefaultDirInfo { defaultDir = @"Texture/BG", defaultExt = ".jpg" }; eventDirInfo = new DefaultDirInfo { defaultDir = @"Texture/Event", defaultExt = ".jpg" }; spriteDirInfo = new DefaultDirInfo { defaultDir = @"Texture/Sprite", defaultExt = ".png" }; thumbnailDirInfo = new DefaultDirInfo { defaultDir = @"Texture/Thumbnail", defaultExt = ".jpg" }; bgmDirInfo = new DefaultDirInfo { defaultDir = @"Sound/BGM", defaultExt = ".wav", legacyAutoChangeSoundExt = autoChangeSoundExt }; seDirInfo = new DefaultDirInfo { defaultDir = @"Sound/SE", defaultExt = ".wav", legacyAutoChangeSoundExt = autoChangeSoundExt }; ambienceDirInfo = new DefaultDirInfo { defaultDir = @"Sound/Ambience", defaultExt = ".wav", legacyAutoChangeSoundExt = autoChangeSoundExt }; voiceDirInfo = new DefaultDirInfo { defaultDir = @"Sound/Voice", defaultExt = ".wav", legacyAutoChangeSoundExt = autoChangeSoundExt }; particleDirInfo = new DefaultDirInfo { defaultDir = @"Particle", defaultExt = ".prefab" }; videoDirInfo = new DefaultDirInfo { defaultDir = @"Video", defaultExt = ".mp4" }; InitDefaultDirInfo(ResourceDir, characterDirInfo); InitDefaultDirInfo(ResourceDir, bgDirInfo); InitDefaultDirInfo(ResourceDir, eventDirInfo); InitDefaultDirInfo(ResourceDir, spriteDirInfo); InitDefaultDirInfo(ResourceDir, thumbnailDirInfo); InitDefaultDirInfo(ResourceDir, bgmDirInfo); InitDefaultDirInfo(ResourceDir, seDirInfo); InitDefaultDirInfo(ResourceDir, ambienceDirInfo); InitDefaultDirInfo(ResourceDir, voiceDirInfo); InitDefaultDirInfo(ResourceDir, particleDirInfo); InitDefaultDirInfo(ResourceDir, videoDirInfo); }
/// <summary> /// 起動時の初期化 /// </summary> /// <param name="rootDirResource">ルートディレクトリのリソース</param> public void BootInit(string rootDirResource, AdvDataManager dataManager = null) { BootSetting.BootInit(rootDirResource, dataManager); if (this.ImportedScenarios != null) { foreach (AdvChapterData chapter in this.ImportedScenarios.Chapters) { chapter.BootInit(this); } } }
//ジャンプ先のリソースファイルをファイルセットに追加 void PreloadDeep(AdvDataManager dataManager, int startPage, HashSet <AssetFile> fileSet, int maxFilePreload, int deepLevel) { if (fileSet.Count >= maxFilePreload) { return; } if (deepLevel <= 0) { return; } for (int page = startPage; page < this.PageNum; ++page) { GetPageData(page).GetJumpScenarioLabelDataList(dataManager).ForEach( x => { if (x != null) { x.PreloadDeep(dataManager, fileSet, maxFilePreload, deepLevel); } }); } }
//ジャンプ先のシナリオデータ public List <AdvScenarioLabelData> GetJumpScenarioLabelDataList(AdvDataManager dataManager) { if (JumpLabelList != null) { return(JumpLabelList); } this.JumpLabelList = new List <AdvScenarioLabelData>(); this.CommandList.ForEach( command => { ///このシナリオからリンクするジャンプ先のシナリオラベルを取得 string[] jumpLabels = command.GetJumpLabels(); if (jumpLabels != null) { foreach (var jumpLabel in jumpLabels) { JumpLabelList.Add(dataManager.FindScenarioLabelData(jumpLabel)); } } }); return(JumpLabelList); }
//データのダウンロード public void Download(AdvDataManager dataManager) { PageDataList.ForEach((item) => item.Download(dataManager)); }
//データのダウンロード public void Download(AdvDataManager dataManager) { commnadList.ForEach((item) => item.Download(dataManager)); }
/// <summary> /// バックグランドでダウンロードだけする /// </summary> /// <param name="dataManager">各種設定データ</param> public void Download(AdvDataManager dataManager) { ScenarioLabelData.ForEach((item) => item.Download(dataManager)); isAlreadyBackGroundLoad = true; }
/// <summary> /// バックグランドでダウンロードだけする /// </summary> /// <param name="dataManager">各種設定データ</param> public void Download(AdvDataManager dataManager) { ScenarioLabelData.ForEach( (item)=>item.Download(dataManager) ); isAlreadyBackGroundLoad = true; }