我被困在更新我的Resource(AssetBundles)Updater / Manager的代码。我使用过时的/过时的WWW类,并且使用UnityWebRequest我无法理解如何使此代码再次起作用:
public IEnumerator LoadByWWWAsync(string url, WWWLoadCallBack callback)
{
WWW www = new WWW(url);
LoadState loadState = new LoadState();
while (!www.isDone)
{
loadState.UpdateProgress(www);
callback(loadState, www);
yield return 0;
}
loadState.UpdateProgress(www);
callback(loadState, www);
}
它调用:
public void UpdateProgress(ResourceRequest resourceRequest)
{
isDone = resourceRequest.isDone;
progress = resourceRequest.progress;
}
我在他们的文档中没有找到有关此案的任何文章。还要为UnityWebRequest和ResourceRequest挖掘整个API,并且没有找到有关如何转换/广播的任何信息,就像WWW一样。也许有人知道解决方案?
答案 0 :(得分:1)
好吧,该错误告诉您您的方法仅使用%timeit np.array([np.hstack((i, j, k)) for i in a for j in b for k in c])
# 55.1 µs ± 2.61 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
作为参数,而不使用ResourceRequest
作为参数。
除了UnityWebRequest
以外,WWW
并非继承自UnityWebRequest
。
要更改它很简单,因为有UnityWebRequest.downloadProgress
将其更改为
ResourceRequest
注意:
我也看不到您实际开始发送请求的位置,因此不会有任何进展:
public void UpdateProgress(UnityWebRequest www)
{
isDone = www.isDone;
progress = www.downloadProgress;
}
您可以使用
www.SendWebRequest();
但是请注意,这是一个通用请求,您必须自己添加var www = new UnityWebResquest(URL);
,DownloadHandler
等内容并定义类型(请参见UnityWebRequest)
在您的情况下,我宁愿使用UnityWebRequest.Get,它会自动添加所需的处理程序等。Unity还建议将其与UploadHandler
一起使用
using