如果收益返回没有产生结果,则返回/继续代码?



如果WWW class的收益率返回没有返回值(以防互联网关闭(,如何使代码继续执行后续步骤? 目前,代码停留在生成值,无法继续。

void Start()
{

StartCoroutine(GetTimers());

}
IEnumerator GetTimers()
{
WWW data = new WWW("http://TimerWebsiteHosting.com/GetTimers.php");
yield return data;
dataString = data.text;
Items = dataString.Split(';');
Timer1 = int.Parse(Items[0]);
Timer2 = int.Parse(Items[1]);

}

首先:WWW早已过时!

你应该使用UnityWebRequest


您可以使用UnityWebRequest.timeout设置超时

然后添加错误检查。成功后宣读data.downloadHandler.text

IEnumerator GetTimers()
{
using(UnityWebRequest www = UnityWebRequest.Get("http://TimerWebsiteHosting.com/GetTimers.php"))
{
// wait up to one second or whatever you want to use as timeout
www.timeout = 1;
yield return www.SendWebRequest();
if (www.isNetworkError || www.isHttpError)
{
Debug.LogError($"Downlaod failed with {www.responseCode} - {www.error}", this);
yield break;
}

dataString = www.downloadHandler.text;
}
Items = dataString.Split(';');
Timer1 = int.Parse(Items[0]);
Timer2 = int.Parse(Items[1]);
}

最新更新