Exemple #1
0
        /// <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);
            }
        }