/// <summary> /// 加载本地版本配置文件 /// </summary> public void LoadVersionConfig() { CommonLog.Log(MAuthor.ZX, "Load VersionConfig"); string localVersionPath = UnityFileLoaderHelper.StreamingAssetsPath + "/version.xml"; if (GameAssetManager.USED_AB_MODE) { localVersionPath = "version.xml"; } var xmlStr = UnityFileLoaderHelper.ReadFileAllText(localVersionPath); versionData = xmlStr.FromXML <VersionData>(); }
protected override void InstanceInit() { base.InstanceInit(); #if !AB_MODE && !UNITY_EDITOR CommonLog.Log($"目前处于非AB模式"); #endif if (!IsInit) { /*#if UNITY_EDITOR * USED_AB_MODE = UnityEngine.PlayerPrefs.GetInt("AB_MODE", 0) == 1; #else*/ USED_AB_MODE = true; //#endif //GameObjectPool.InitPool(); UnityFileLoaderHelper.InitForMainThread(); UnityFileLoaderHelper.USED_AB_MODE = USED_AB_MODE; IsInit = true; } }
/// <summary> /// 得到被映射后的文件名称,文件不存在返回空 /// </summary> /// <param name="fileName"></param> /// <param name="pos"></param> /// <returns></returns> public string GetMappedFilePath(string fileName, out eFileMapperLoaderPosType pos) { pos = eFileMapperLoaderPosType.None; var info = GetFileInfo(fileName); if (info != null) { UnityFileLoaderHelper.eFileLoaderPosType filePos; var has = UnityFileLoaderHelper.IsFileExist(Dir, info.GetMappedFileName(), out filePos); if (filePos == UnityFileLoaderHelper.eFileLoaderPosType.PersistAsset) { pos = eFileMapperLoaderPosType.MapperAsset_PersistAsset; return(UnityPersistFileHelper.GetPersistAssetFilePath(Dir, info.GetMappedFileName())); } if (filePos == UnityFileLoaderHelper.eFileLoaderPosType.StreamAsset) { pos = eFileMapperLoaderPosType.MapperAsset_StreamAsset; return(UnityStreamingFileHelper.GetStreamAssetFilePath(Dir, info.GetMappedFileName())); } return(string.Empty); } else { UnityFileLoaderHelper.eFileLoaderPosType filePos; var has = UnityFileLoaderHelper.IsFileExist(Dir, fileName, out filePos); if (filePos == UnityFileLoaderHelper.eFileLoaderPosType.PersistAsset) { pos = eFileMapperLoaderPosType.PersistAsset; return(UnityPersistFileHelper.GetPersistAssetFilePath(Dir, fileName)); } if (filePos == UnityFileLoaderHelper.eFileLoaderPosType.StreamAsset) { pos = eFileMapperLoaderPosType.StreamAsset; return(UnityStreamingFileHelper.GetStreamAssetFilePath(Dir, fileName)); } return(string.Empty); } }
/// <summary> /// 根据文件夹和文件名称,自动判断Mapper或者在Stream任意位置,总之读取到你想要的Bundle /// </summary> public AssetBundleCreateRequest LoadBundleFromFileAsync(string fileName, out eFileMapperLoaderPosType pos, uint crc = 0U) { pos = eFileMapperLoaderPosType.None; var info = GetFileInfo(fileName); if (info != null) { UnityFileLoaderHelper.eFileLoaderPosType filePos; var asb = UnityFileLoaderHelper.ReadAssetBundleAsync(Dir, info.GetMappedFileName(), (ulong)info.Offset, out filePos, crc); if (filePos == UnityFileLoaderHelper.eFileLoaderPosType.PersistAsset) { pos = eFileMapperLoaderPosType.MapperAsset_PersistAsset; } if (filePos == UnityFileLoaderHelper.eFileLoaderPosType.StreamAsset) { pos = eFileMapperLoaderPosType.MapperAsset_StreamAsset; } return(asb); } else { UnityFileLoaderHelper.eFileLoaderPosType filePos; var asb = UnityFileLoaderHelper.ReadAssetBundleAsync(Dir, fileName, 0, out filePos, crc); if (filePos == UnityFileLoaderHelper.eFileLoaderPosType.PersistAsset) { pos = eFileMapperLoaderPosType.PersistAsset; } if (filePos == UnityFileLoaderHelper.eFileLoaderPosType.StreamAsset) { pos = eFileMapperLoaderPosType.StreamAsset; } return(asb); } }
/// <summary> /// 根据文件夹和文件名称,自动判断Mapper或者在Stream任意位置,总之读取到你想要的文件 /// 文件读取顺序,Mapper Persist,Mapper Stream,源文件Persist,源文件Stream /// </summary> public byte[] GetFileBytes(string fileName, out eFileMapperLoaderPosType pos) { pos = eFileMapperLoaderPosType.None; var info = GetFileInfo(fileName); if (info != null) { UnityFileLoaderHelper.eFileLoaderPosType filePos; var bs = UnityFileLoaderHelper.ReadFileAllBytes(Dir, info.GetMappedFileName(), info.Offset, info.Len, out filePos); if (filePos == UnityFileLoaderHelper.eFileLoaderPosType.PersistAsset) { pos = eFileMapperLoaderPosType.MapperAsset_PersistAsset; } if (filePos == UnityFileLoaderHelper.eFileLoaderPosType.StreamAsset) { pos = eFileMapperLoaderPosType.MapperAsset_StreamAsset; } return(bs); } else { UnityFileLoaderHelper.eFileLoaderPosType filePos; var bs = UnityFileLoaderHelper.ReadFileAllBytes(Dir, fileName, out filePos); if (filePos == UnityFileLoaderHelper.eFileLoaderPosType.PersistAsset) { pos = eFileMapperLoaderPosType.PersistAsset; } if (filePos == UnityFileLoaderHelper.eFileLoaderPosType.StreamAsset) { pos = eFileMapperLoaderPosType.StreamAsset; } return(bs); } }
public static FileMapSystemTagFindResultHelper FindInfos(FileMapSystem sys, int[] tags) { var res = new FileMapSystemTagFindResultHelper(); res.SearchTags = tags; var dictDowned = new Dictionary <string, int>(); var dictMiss = new Dictionary <string, int>(); foreach (var info in sys.FileInfo.AllFileMapInfo) { if (res.ContainsTag(info.FileTag)) { res.AllInfos.Add(info); var mappedName = info.GetMappedFileName(); UnityFileLoaderHelper.eFileLoaderPosType pos; if (UnityFileLoaderHelper.IsFileExist(sys.Dir, mappedName, out pos)) { if (!dictDowned.ContainsKey(mappedName)) { dictDowned[mappedName] = info.Len; } else { dictDowned[mappedName] = dictDowned[mappedName] + info.Len; } } else { if (!dictMiss.ContainsKey(mappedName)) { dictMiss[mappedName] = info.Len; } else { dictMiss[mappedName] = dictMiss[mappedName] + info.Len; } } } } foreach (var info in dictDowned) { var wd = new WWWFileDownloader.DownloadFileInfo() { FileName = info.Key, FileSize = info.Value }; res.Downloaded.Add(wd); res.DownloadedSize += info.Value; } foreach (var info in dictMiss) { var wd = new WWWFileDownloader.DownloadFileInfo() { FileName = info.Key, FileSize = info.Value }; res.Missed.Add(wd); res.MissedSize += info.Value; } return(res); }