/// <summary> /// 创建下载任务。 /// </summary> /// <param name="downloadPath">下载后存放路径。</param> /// <param name="downloadUri">原始下载地址。</param> /// <param name="priority">下载任务的优先级。</param> /// <param name="flushSize">将缓冲区写入磁盘的临界大小。</param> /// <param name="timeout">下载超时时长,以秒为单位。</param> /// <param name="userData">用户自定义数据。</param> /// <returns>创建的下载任务。</returns> public static DownloadTask Create(string downloadPath, string downloadUri, int priority, int flushSize, float timeout, object userData) { DownloadTask downloadTask = ReferencePool.Acquire <DownloadTask>(); downloadTask.Initialize(++s_Serial, priority); downloadTask.m_DownloadPath = downloadPath; downloadTask.m_DownloadUri = downloadUri; downloadTask.m_FlushSize = flushSize; downloadTask.m_Timeout = timeout; downloadTask.m_UserData = userData; return(downloadTask); }
/// <summary> /// 增加下载任务。 /// </summary> /// <param name="downloadPath">下载后存放路径。</param> /// <param name="downloadUri">原始下载地址。</param> /// <param name="priority">下载任务的优先级。</param> /// <param name="userData">用户自定义数据。</param> /// <returns>新增下载任务的序列编号。</returns> public int AddDownload(string downloadPath, string downloadUri, int priority, object userData) { if (string.IsNullOrEmpty(downloadPath)) { throw new GameFrameworkException("Download path is invalid."); } if (string.IsNullOrEmpty(downloadUri)) { throw new GameFrameworkException("Download uri is invalid."); } if (TotalAgentCount <= 0) { throw new GameFrameworkException("You must add download agent first."); } DownloadTask downloadTask = ReferencePool.Acquire <DownloadTask>(); downloadTask.Initialize(downloadPath, downloadUri, priority, m_FlushSize, m_Timeout, userData); m_TaskPool.AddTask(downloadTask); return(downloadTask.SerialId); }