コード例 #1
0
 public override long Write(AssetsFileWriter writer)
 {
     //memorystream for alignment issue
     using (MemoryStream ms = new MemoryStream())
         using (AssetsFileWriter w = new AssetsFileWriter(ms))
         {
             assetsFile.Write(w, -1, replacers, fileId, typeMeta);
             writer.Write(ms.ToArray());
         }
     return(writer.Position);
 }
コード例 #2
0
        public override long Write(AssetsFileWriter writer)
        {
            // Some parts of an assets file need to be aligned to a multiple of 4/8/16 bytes,
            // but for this to work correctly, the start of the file of course needs to be aligned too.
            // In a loose .assets file this is true by default, but inside a bundle file,
            // this might not be the case. Therefore wrap the bundle output stream in a SegmentStream
            // which will make it look like the start of the new assets file is at position 0
            SegmentStream    alignedStream = new SegmentStream(writer.BaseStream, writer.Position);
            AssetsFileWriter alignedWriter = new AssetsFileWriter(alignedStream);

            assetsFile.Write(alignedWriter, -1, assetReplacers);
            writer.Position = writer.BaseStream.Length;
            return(writer.Position);
        }
コード例 #3
0
 public override long Write(AssetsFileWriter writer)
 {
     //todo, we have to write to ms because AssetsFile.Write
     //rewrites back at 0 which is the bundle header, not
     //the top of the assets file
     byte[] data;
     using (MemoryStream ms = new MemoryStream())
         using (AssetsFileWriter w = new AssetsFileWriter(ms))
         {
             assetsFile.Write(w, 0, replacers, fileId);
             data = ms.ToArray();
         }
     writer.Write(data);
     return(writer.Position);
 }