private void Update() { if (m_UnityWebRequest == null || !m_UnityWebRequest.isDone) { return; } bool isError = false; #if UNITY_2017_1_OR_NEWER isError = m_UnityWebRequest.isNetworkError || m_UnityWebRequest.isHttpError; #else isError = m_UnityWebRequest.isError; #endif if (isError) { WebRequestAgentHelperErrorEventArgs webRequestAgentHelperErrorEventArgs = WebRequestAgentHelperErrorEventArgs.Create(m_UnityWebRequest.error); m_WebRequestAgentHelperErrorEventHandler(this, webRequestAgentHelperErrorEventArgs); ReferencePool.Release(webRequestAgentHelperErrorEventArgs); } else if (m_UnityWebRequest.downloadHandler.isDone) { WebRequestAgentHelperCompleteEventArgs webRequestAgentHelperCompleteEventArgs = WebRequestAgentHelperCompleteEventArgs.Create(m_UnityWebRequest.downloadHandler.data); m_WebRequestAgentHelperCompleteEventHandler(this, webRequestAgentHelperCompleteEventArgs); ReferencePool.Release(webRequestAgentHelperCompleteEventArgs); } }
/// <summary> /// 创建 Web 请求代理辅助器错误事件。 /// </summary> /// <param name="errorMessage">错误信息。</param> /// <returns>创建的 Web 请求代理辅助器错误事件。</returns> public static WebRequestAgentHelperErrorEventArgs Create(string errorMessage) { WebRequestAgentHelperErrorEventArgs webRequestAgentHelperErrorEventArgs = ReferencePool.Acquire <WebRequestAgentHelperErrorEventArgs>(); webRequestAgentHelperErrorEventArgs.ErrorMessage = errorMessage; return(webRequestAgentHelperErrorEventArgs); }
private void OnWebRequestAgentHelperError(object sender, WebRequestAgentHelperErrorEventArgs e) { m_Helper.Reset(); m_Task.Status = WebRequestTaskStatus.Error; WebRequestAgentFailure?.Invoke(this, e.ErrorMessage); m_Task.Done = true; }
/// <summary> /// Web 请求代理轮询。 /// </summary> /// <param name="elapseSeconds">逻辑流逝时间,以秒为单位。</param> /// <param name="realElapseSeconds">真实流逝时间,以秒为单位。</param> public void Update(float elapseSeconds, float realElapseSeconds) { if (m_Task.Status == WebRequestTaskStatus.Doing) { m_WaitTime += realElapseSeconds; if (m_WaitTime >= m_Task.Timeout) { WebRequestAgentHelperErrorEventArgs webRequestAgentHelperErrorEventArgs = WebRequestAgentHelperErrorEventArgs.Create("Timeout"); OnWebRequestAgentHelperError(this, webRequestAgentHelperErrorEventArgs); ReferencePool.Release(webRequestAgentHelperErrorEventArgs); } } }
private void Update() { if (m_WWW == null || !m_WWW.isDone) { return; } if (!string.IsNullOrEmpty(m_WWW.error)) { WebRequestAgentHelperErrorEventArgs webRequestAgentHelperErrorEventArgs = WebRequestAgentHelperErrorEventArgs.Create(m_WWW.error); m_WebRequestAgentHelperErrorEventHandler(this, webRequestAgentHelperErrorEventArgs); ReferencePool.Release(webRequestAgentHelperErrorEventArgs); } else { WebRequestAgentHelperCompleteEventArgs webRequestAgentHelperCompleteEventArgs = WebRequestAgentHelperCompleteEventArgs.Create(m_WWW.bytes); m_WebRequestAgentHelperCompleteEventHandler(this, webRequestAgentHelperCompleteEventArgs); ReferencePool.Release(webRequestAgentHelperCompleteEventArgs); } }