//加载streamingAsset下的配表信息 private bool LoadStreamingConfig() { var path = AssetBundlePathResolver.GetStreamingBundlePath(AssetBundlePathResolver.DependFileName); if (!UnityStreamingFileHelper.CheckStreamExistsFile(path)) { return(false); } var _xml = UnityStreamingFileHelper.GetStreamStringAllPlatform(path); return(ParseBundleConfig(_xml)); }
public static FileMapSystem CreateFromStreamAssetFile(string Dir) { var FileMap = new FileMapSystem(Dir); var bs = UnityStreamingFileHelper.ReadStreamAssetFileAllBytes(Dir, FileMap.FileMapInfoFileName); if (bs == null || bs.Length == 0) { //Debug.LogError("本地读取到数据长度为0,Dir:"+Dir); return(null); } FileMap.InitFileMapInfo(bs); //Debug.LogError("初始化Map成功,len:"+bs.Length+"Dir:"+Dir); return(FileMap); }
/// <summary> /// 检查文件是否存在,检查顺序为Persist然后Stream /// </summary> /// <param name="dir"></param> /// <param name="path"></param> /// <param name="pos"></param> /// <returns></returns> public static bool IsFileExist(string dir, string fileName, out eFileLoaderPosType pos) { if (UnityPersistFileHelper.IsPersistAssetFileExist(dir, fileName)) { pos = eFileLoaderPosType.PersistAsset; return(true); } if (UnityStreamingFileHelper.IsStreamAssetFileExist(dir, fileName)) { pos = eFileLoaderPosType.StreamAsset; return(true); } pos = eFileLoaderPosType.None; return(false); }
public static AssetBundleCreateRequest ReadAssetBundleAsync(string dir, string fileName, ulong offset, out eFileLoaderPosType pos, uint crc = 0U) { var hasFile = IsFileExist(dir, fileName, out pos); if (hasFile) { if (pos == eFileLoaderPosType.PersistAsset) { return(UnityPersistFileHelper.ReadPersistAssetBundleAsync(dir, fileName, offset, crc)); } if (pos == eFileLoaderPosType.StreamAsset) { return(UnityStreamingFileHelper.ReadStreamAssetBundleAsync(dir, fileName, offset, crc)); } } return(null); }
public static byte[] ReadFileAllBytes(string dir, string fileName, int offset, int len, out eFileLoaderPosType pos) { var hasFile = IsFileExist(dir, fileName, out pos); if (hasFile) { if (pos == eFileLoaderPosType.PersistAsset) { return(UnityPersistFileHelper.ReadPersistAssetFileAllBytes(dir, fileName, offset, len)); } if (pos == eFileLoaderPosType.StreamAsset) { return(UnityStreamingFileHelper.ReadStreamAssetFileAllBytes(dir, fileName, offset, len)); } } return(null); }
public static Stream ReadFileByStream(string dir, string fileName, out eFileLoaderPosType pos, int offset = 0) { var hasFile = IsFileExist(dir, fileName, out pos); if (hasFile) { if (pos == eFileLoaderPosType.PersistAsset) { return(UnityPersistFileHelper.ReadPersistAssetFileByStream(dir, fileName, offset)); } if (pos == eFileLoaderPosType.StreamAsset) { return(UnityStreamingFileHelper.ReadStreamAssetFileByStream(dir, fileName, offset)); } } return(null); }
public static string ReadFileAllText(string dir, string fileName) { eFileLoaderPosType pos; var hasFile = IsFileExist(dir, fileName, out pos); if (hasFile) { if (pos == eFileLoaderPosType.PersistAsset) { return(UnityPersistFileHelper.ReadPersistAssetFileAllText(dir, fileName)); } if (pos == eFileLoaderPosType.StreamAsset) { return(UnityStreamingFileHelper.ReadStreamAssetFileAllText(dir, fileName)); } } return(null); }
/// <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); } }