赞
踩
当我在Unity 2019中使用Unity 2021的代码satable时。
控制台显示
“UnityWebRequest”不包含“result”的定义,并且找不到接受“UnityWebRequest”类型的第一个参数的可访问扩展方法“result”(是否缺少using指令或程序集引用?)
漏洞/问题:
if (req.result == UnityWebRequest.Result.ConnectionError || req.result == UnityWebRequest.Result.ProtocolError)
版本2020.3中添加了result。
在该版本之前,只需遵循相应版本API中的示例,例如2019.4 API
例如,您可以简单地检查error中是否有任何内容
- using (var webRequest = UnityWebRequest.Get(uri))
- {
- yield return webRequest.SendWebRequest();
- if (!string.IsNullOrWhiteSpace(webRequest.error))
- {
- Debug.LogError($"Error {webRequest.responseCode} - {webRequest.error}");
- yield break;
- }
- Debug.Log(webRequest.downloadHandler.text);
- }
或者如果您想进一步区分isNetworkError(包括没有互联网连接、主机不可访问、DNS解析错误等错误)和isHttpError(基本上与responseCode >= 400
相同)
如果你的问题是关于向下兼容性,但支持两个版本要么坚持2020.3之前的方式或使用Conditional Compilation和做例如.
- #if UNITY_2020_3_OR_NEWER
- if(webRequest.result == UnityWebRequest.Result.ConnectionError || webRequest.result == UnityWebRequest.Result.ProtocolError)
- #else
- if(!string.IsNullOrWhiteSpace(webRequest.error))
- #endif
- {
- Debug.LogError($"Error {webRequest.responseCode} - {webRequest.error}");
- yield break;
- }
或者如下:
- /// <summary>
- /// 执行下载行为
- /// </summary>
- /// <param name="bundleInfoList"></param>
- /// <returns>返回的List包含的是还未下载的Bundle</returns>
- private async Task<List<BundleInfo>> ExecuteDownload(ModuleConfig moduleConfig, List<BundleInfo> bundleList)
- {
- while (bundleList.Count > 0)
- {
- BundleInfo bundleInfo = bundleList[0];
-
- UnityWebRequest request = UnityWebRequest.Get(GetServerURL(moduleConfig, bundleInfo.bundle_name));
-
- string updatePath = GetUpdatePath(moduleConfig.moduleName);
-
- request.downloadHandler = new DownloadHandlerFile(string.Format("{0}/" + bundleInfo.bundle_name, updatePath));
-
- await request.SendWebRequest();
-
- #if UNITY_2020_3_OR_NEWER
-
- if (request.result == UnityWebRequest.Result.Success)
- {
- Debug.Log("下载资源:" + bundleInfo.bundle_name + " 成功");
-
- bundleList.RemoveAt(0);
- }
- else
- {
- break;
- }
-
- #else
- if (string.IsNullOrEmpty(request.error) == true)
- {
- Debug.Log("下载资源:" + bundleInfo.bundle_name + " 成功");
-
- bundleList.RemoveAt(0);
- }
- else
- {
- break;
- }
- #endif
-
-
-
- }
-
- return bundleList;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。