public void LoadAssetToFileSystem(string outputPath, List <string> targetFiles, IPackageResourceCompressor decompressor)
        {
            if (string.IsNullOrEmpty(outputPath) || null == targetFiles || targetFiles.Count == 0)
            {
                return;
            }
            if (m_bIsRunning)
            {
                return;
            }
            m_bIsRunning = true;

            m_Decompressor      = decompressor;
            m_strRootPathPerfix = GetStreamingAssetPath();
            m_TaskQueue         = new Queue <PackageResourceLoaderElement>(targetFiles.Count);

            for (int i = 0; i < targetFiles.Count; ++i)
            {
                string url            = m_strRootPathPerfix + targetFiles[i];
                string elemOutputPath = outputPath + targetFiles[i];

                m_TaskQueue.Enqueue(new PackageResourceLoaderElement(targetFiles[i], url, elemOutputPath));
            }
            m_iTotalLoadCount = m_TaskQueue.Count;

            m_TaskErrorQueue   = new Queue <PackageResourceLoaderElement>();
            m_TaskSucceedQueue = new Queue <PackageResourceLoaderElement>();

            m_iCurrentLoaderCount = 0;
            m_iCurrentRetryCount  = 0;

            // start task
            StartTask();
        }
예제 #2
0
 private byte[] CompressFile(byte[] source, IPackageResourceCompressor compressType)
 {
     return(compressType.Compress(source));
 }