Ejemplo n.º 1
0
        //加载streamingAsset下的配表信息
        private bool LoadStreamingConfig()
        {
            var path = AssetBundlePathResolver.GetStreamingBundlePath(AssetBundlePathResolver.DependFileName);

            if (!UnityStreamingFileHelper.CheckStreamExistsFile(path))
            {
                return(false);
            }
            var _xml = UnityStreamingFileHelper.GetStreamStringAllPlatform(path);

            return(ParseBundleConfig(_xml));
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 /// <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);
 }
Ejemplo n.º 4
0
    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);
    }
Ejemplo n.º 5
0
    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);
    }
Ejemplo n.º 6
0
    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);
    }
Ejemplo n.º 7
0
    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);
    }
Ejemplo n.º 8
0
        /// <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);
            }
        }