遍历多个UnityWebRequests的解决方法可以通过使用Coroutine和yield return来实现。下面是一个示例代码:
using System.Collections;
using UnityEngine;
using UnityEngine.Networking;
public class WebRequestManager : MonoBehaviour
{
private string[] urls = { "https://example.com/request1", "https://example.com/request2", "https://example.com/request3" };
private void Start()
{
StartCoroutine(SendWebRequests());
}
private IEnumerator SendWebRequests()
{
foreach (string url in urls)
{
UnityWebRequest request = UnityWebRequest.Get(url);
yield return request.SendWebRequest();
if (request.isNetworkError || request.isHttpError)
{
Debug.Log(request.error);
}
else
{
Debug.Log(request.downloadHandler.text);
}
}
}
}
在这个示例中,我们在Start()
方法中调用了SendWebRequests()
协程方法。在SendWebRequests()
方法中,我们使用foreach
循环遍历urls
数组,为每个URL创建一个UnityWebRequest,并使用yield return
来等待请求的完成。
当请求完成后,我们可以检查request.isNetworkError
和request.isHttpError
属性来判断是否有网络错误或HTTP错误发生。如果有错误发生,我们可以使用request.error
属性来获取错误信息。如果没有错误发生,我们可以使用request.downloadHandler.text
来获取服务器返回的数据。
这样,我们就可以遍历多个UnityWebRequests并处理它们的响应了。