protected IEnumerator CoLoadGraphic(GraphicInfoList graphic, Action OnComplete)
        {
            IsLoading = true;
            //直前のファイルがあればそれを削除
            foreach (var item in this.GetComponents <AssetFileReference>())
            {
                Destroy(item);
            }

            foreach (var item in graphic.InfoList)
            {
                AssetFile file = AssetFileManager.Load(item.File, this);
                file.AddReferenceComponet(this.gameObject);
                file.Unuse(this);
            }

            while (!graphic.IsLoadEnd)
            {
                yield return(0);
            }

            OnComplete();
            IsLoading = false;
        }
예제 #2
0
        //章別に分かれたシナリオをロードする
        IEnumerator LoadChaptersAsync(string rootDir)
        {
            //動的に作成
            AdvImportScenarios scenarios = ScriptableObject.CreateInstance <AdvImportScenarios>();

            foreach (string chapterName in ChapterNames)
            {
                string    url  = FilePathUtil.Combine(rootDir, chapterName) + ".chapter.asset";
                AssetFile file = AssetFileManager.Load(url, this);
                while (!file.IsLoadEnd)
                {
                    yield return(null);
                }

                AdvChapterData chapter = file.UnityObject as AdvChapterData;
                if (scenarios == null)
                {
                    Debug.LogError(url + " is  not scenario file");
                    yield break;
                }
                scenarios.AddChapter(chapter);
            }
            this.Scenarios = scenarios;
        }
예제 #3
0
        /// <summary>
        /// CSV設定ファイルをロードして、データ作成
        /// </summary>
        /// <param name="filePathInfoList">ロードするパスのリスト</param>
        /// <returns></returns>
        public virtual IEnumerator LoadCsvAsync(List <AssetFilePathInfo> filePathInfoList)
        {
            IsLoadEnd = false;
            ClearGridList();
            List <AssetFile> fileList = new List <AssetFile>();

            foreach (AssetFilePathInfo filePathInfo in filePathInfoList)
            {
                fileList.Add(AssetFileManager.Load(filePathInfo.Path, filePathInfo.Version, this));
            }
            foreach (AssetFile file in fileList)
            {
                while (!file.IsLoadEnd)
                {
                    yield return(0);
                }
                if (!file.IsLoadError)
                {
                    List.Add(file.Csv);
                }
                file.Unuse(this);
            }
            IsLoadEnd = true;
        }
예제 #4
0
        /// <summary>
        /// 派生ファイルを追加してロードを開始させる
        /// </summary>
        public virtual void LoadAndAddSubFile(string path)
        {
            AssetFile file = AssetFileManager.Load(path, this.Version, this);

            SubFiles.Add(path, file);
        }
예제 #5
0
        //**************************** TSVのロード用 ****************************//
        /// <summary>
        /// TSVをロード
        /// </summary>
        /// <param name="url">ファイルパス</param>
        /// <param name="version">シナリオバージョン(-1以下で必ずサーバーからデータを読み直す)</param>
        /// <returns></returns>
        internal IEnumerator CoLoadFromTsv(string url, int version)
        {
            //起動ファイルの読み込み
            AssetFile bootFile = AssetFileManager.Load(url, version, this);

            Debug.Log("Load Chapter : " + ChapterName + " :Ver " + bootFile.Version);
            while (!bootFile.IsLoadEnd)
            {
                yield return(null);
            }

            string rootDir = FilePathUtil.GetDirectoryPath(url);
            //設定ファイルの読み込み
            List <AssetFile> settingFileList = new List <AssetFile>();
            {
                StringGrid grid = bootFile.Csv;
                foreach (StringGridRow row in grid.Rows)
                {
                    if (row.RowIndex < grid.DataTopRow)
                    {
                        continue;                                                                       //データの行じゃない
                    }
                    if (row.IsEmptyOrCommantOut)
                    {
                        continue;                                                                               //データがない
                    }
                    string path = AdvParser.ParseCell <string>(row, AdvColumnName.Param1);
                    int    ver  = AdvParser.ParseCell <int>(row, AdvColumnName.Version);
                    settingFileList.Add(AssetFileManager.Load(FilePathUtil.Combine(rootDir, path), ver, this));
                }
            }

            //設定ファイルの読み込み
            List <AssetFile> scenarioFileList = new List <AssetFile>();

            foreach (var item in settingFileList)
            {
                while (!item.IsLoadEnd)
                {
                    yield return(null);
                }
                if (!item.IsLoadError)
                {
                    StringGrid grid = item.Csv;
                    if (grid.SheetName != AdvSheetParser.SheetNameScenario)
                    {
                        this.RuntimeGridList.Add(grid);
                    }
                    else
                    {
                        foreach (StringGridRow row in grid.Rows)
                        {
                            if (row.RowIndex < grid.DataTopRow)
                            {
                                continue;                                                                               //データの行じゃない
                            }
                            if (row.IsEmptyOrCommantOut)
                            {
                                continue;                                                                                       //データがない
                            }
                            string path = AdvParser.ParseCell <string>(row, AdvColumnName.FileName);
                            int    ver  = AdvParser.ParseCellOptional <int>(row, AdvColumnName.Version, 0);

                            //旧形式(ファイル分割なし)に対応
                            if (!path.Contains("/"))
                            {
                                path = "Scenario/" + path;
                            }
                            path += ".tsv";
                            scenarioFileList.Add(AssetFileManager.Load(FilePathUtil.Combine(rootDir, path), ver, this));
                        }
                    }
                }
                item.Unuse(this);
            }

            foreach (var item in scenarioFileList)
            {
                while (!item.IsLoadEnd)
                {
                    yield return(null);
                }
                if (!item.IsLoadError)
                {
                    this.RuntimeGridList.Add(item.Csv);
                }
                item.Unuse(this);
            }

            bootFile.Unuse(this);
//			Debug.Log("Load End Chapter : " + url + " :Ver " + bootFile.Version);
            Debug.Log("Load End Chapter : " + ChapterName + " :Ver " + bootFile.Version);
        }