Unity 2019中使用2021版UnityWebRequest代码报错:找不到result属性
Unity 2019兼容UnityWebRequest错误判断方案
报错原因
Unity 2021中使用的UnityWebRequest.result属性是Unity 2020.1版本才新增的API,Unity 2019完全不支持这个属性,直接移植代码会出现找不到定义的报错。原代码里的ConnectionError对应网络连接类错误,ProtocolError对应HTTP协议类错误,这两类错误在Unity 2019里有专门的替代判断方式。
替换实现
直接用Unity 2019原生支持的isNetworkError和isHttpError属性替换原判断逻辑,完全匹配原代码的错误检测范围:
原2021代码
if (req.result == UnityWebRequest.Result.ConnectionError || req.result == UnityWebRequest.Result.ProtocolError) { // 错误处理逻辑 }
适配2019的代码
// 注意:Unity 2019必须引入这个命名空间 using UnityEngine.Networking; // ... if (req.isNetworkError || req.isHttpError) { // 原错误处理逻辑可以直接保留 }
细分错误类型(可选)
如果需要像原代码一样区分是网络连接错误还是HTTP协议错误,可以拆分判断并结合error和responseCode属性做更精准的处理:
if (req.isNetworkError) { // 对应原代码的ConnectionError(如网络断开、无法连接服务器) Debug.LogError("网络连接错误: " + req.error); } else if (req.isHttpError) { // 对应原代码的ProtocolError(如404、500等HTTP错误码) Debug.LogError("HTTP协议错误: " + req.responseCode + " - " + req.error); }
内容的提问来源于stack exchange,提问作者yoyochan
相关产品推荐
相关产品推荐

