所以我试图执行一个UnityWebrequest,它需要从一个协程开始。现在尝试在某个时候调试所有内容,我发现从 Start 函数调用 Coroutine 是可行的(接收 Debug.Log 消息),但是从普通函数调用它将不起作用(我没有收到 内的调试消息GetRequest
)。
因此我认为由于某种原因协程没有在主线程上运行(因为也没有出现错误)。
有人知道我如何强制协程在主线程上运行或解决我的问题吗?
在这里,您将找到WebGet
从不在 Monobehaviour 中的类调用的代码,但包含的类WebGet & GetRequest
是。
(请忽略其中的请求变量,WebGet
这将用于稍后阶段。
public UnityWebRequest WebGet(string url)
{
Debug.Log("This is the URL Get " + url);
var request = UnityWebRequest.Get(url);
Debug.Log("Request URL: " + request.url);
StartCoroutine(GetRequest(url));
Debug.Log("After Coroutine");
return request;
}
private IEnumerator GetRequest(string url)
{
var request = UnityWebRequest.Get(url);
Debug.Log("This is the URL inside coroutine " + url);
yield return request.SendWebRequest();
if (request.isNetworkError)
{
Debug.Log("Error While Sending: " + request.error);
}
else
{
Debug.Log("Received: " + request.result);
}
}