如果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]);
}