private void OnDownloadAgentHelperUpdateLength(object sender, DownloadAgentHelperUpdateLengthEventArgs e) { m_WaitTime = 0f; m_DownloadedLength += e.DeltaLength; if (DownloadAgentUpdate != null) { DownloadAgentUpdate(this, e.DeltaLength); } }
/// <summary> /// 创建下载代理辅助器更新数据大小事件。 /// </summary> /// <param name="deltaLength">下载的增量数据大小。</param> /// <returns>创建的下载代理辅助器更新数据大小事件。</returns> public static DownloadAgentHelperUpdateLengthEventArgs Create(int deltaLength) { if (deltaLength <= 0) { Debug.LogError("Delta length is invalid."); } DownloadAgentHelperUpdateLengthEventArgs downloadAgentHelperUpdateLengthEventArgs = ReferencePool.Acquire <DownloadAgentHelperUpdateLengthEventArgs>(); downloadAgentHelperUpdateLengthEventArgs.DeltaLength = deltaLength; return(downloadAgentHelperUpdateLengthEventArgs); }
private void Update() { if (m_WWW == null) { return; } int deltaLength = m_WWW.bytesDownloaded - m_LastDownloadedSize; if (deltaLength > 0) { m_LastDownloadedSize = m_WWW.bytesDownloaded; DownloadAgentHelperUpdateLengthEventArgs downloadAgentHelperUpdateLengthEventArgs = DownloadAgentHelperUpdateLengthEventArgs.Create(deltaLength); m_DownloadAgentHelperUpdateLengthEventHandler(this, downloadAgentHelperUpdateLengthEventArgs); ReferencePool.Release(downloadAgentHelperUpdateLengthEventArgs); } if (m_WWW == null) { return; } if (!m_WWW.isDone) { return; } if (!string.IsNullOrEmpty(m_WWW.error)) { DownloadAgentHelperErrorEventArgs dodwnloadAgentHelperErrorEventArgs = DownloadAgentHelperErrorEventArgs.Create(m_WWW.error.StartsWith(RangeNotSatisfiableErrorCode.ToString()), m_WWW.error); m_DownloadAgentHelperErrorEventHandler(this, dodwnloadAgentHelperErrorEventArgs); ReferencePool.Release(dodwnloadAgentHelperErrorEventArgs); } else { byte[] bytes = m_WWW.bytes; DownloadAgentHelperUpdateBytesEventArgs downloadAgentHelperUpdateBytesEventArgs = DownloadAgentHelperUpdateBytesEventArgs.Create(bytes, 0, bytes.Length); m_DownloadAgentHelperUpdateBytesEventHandler(this, downloadAgentHelperUpdateBytesEventArgs); ReferencePool.Release(downloadAgentHelperUpdateBytesEventArgs); DownloadAgentHelperCompleteEventArgs downloadAgentHelperCompleteEventArgs = DownloadAgentHelperCompleteEventArgs.Create(bytes.Length); m_DownloadAgentHelperCompleteEventHandler(this, downloadAgentHelperCompleteEventArgs); ReferencePool.Release(downloadAgentHelperCompleteEventArgs); } }
protected override bool ReceiveData(byte[] data, int dataLength) { if (m_Owner != null && m_Owner.m_UnityWebRequest != null && dataLength > 0) { DownloadAgentHelperUpdateBytesEventArgs downloadAgentHelperUpdateBytesEventArgs = DownloadAgentHelperUpdateBytesEventArgs.Create(data, 0, dataLength); m_Owner.m_DownloadAgentHelperUpdateBytesEventHandler(this, downloadAgentHelperUpdateBytesEventArgs); ReferencePool.Release(downloadAgentHelperUpdateBytesEventArgs); DownloadAgentHelperUpdateLengthEventArgs downloadAgentHelperUpdateLengthEventArgs = DownloadAgentHelperUpdateLengthEventArgs.Create(dataLength); m_Owner.m_DownloadAgentHelperUpdateLengthEventHandler(this, downloadAgentHelperUpdateLengthEventArgs); ReferencePool.Release(downloadAgentHelperUpdateLengthEventArgs); DownloadAgentHelperProgressEventArgs downloadAgentHelperProgressEventArgs = DownloadAgentHelperProgressEventArgs.Create(contentLength); m_Owner.m_DownloadAgentHelperProgressEventHandler(this, downloadAgentHelperProgressEventArgs); ReferencePool.Release(downloadAgentHelperProgressEventArgs); } return(base.ReceiveData(data, dataLength)); }