在 Unity3d 中加载外部数据时,我正在尝试处理丢失的网络连接。
我的应用程序从服务器提取大量数据,如果没有网络连接,应用程序应该会失败,将问题传达给用户。
我使用 WWW 类进行所有数据检索,并且也想使用 WWW 处理网络连接丢失。
我的主要问题是 WWW 类的错误属性返回:
“被拒绝,因为没有找到 crossdomain.xml 策略文件”
当我从电脑上拔下网线时。
我不知道如何区分丢失的网络连接和丢失的 crossdomain.xml 文件,这是我想要的,因为它们是完全不同的问题。
我不想将所有“跨域策略错误”“解释”为网络丢失,因为它们可能不是。
我用于加载数据的代码如下所示:
public class SendAndLoadData : MonoBehaviour
{
public delegate void SuccessEventHandler(string data);
public delegate void ErrorEventHandler(string msg);
public void SendData(string url, SuccessEventHandler onSuccess, ErrorEventHandler onError) {
StartCoroutine(LoadRemoteData(url,onSuccess,onError));
}
IEnumerator LoadRemoteData(string path, SuccessEventHandler onSuccess, ErrorEventHandler onError)
{
var _www = new WWW(path);
yield return _www;
if (_www.error != null)
{
if ( onError != null ) {
onError(_www.error);
}
}
else
{
var data = _www.text;
if ( onSuccess != null ) {
onSuccess(data);
}
}
}
}
任何建议,将不胜感激。