UnityWebRequest到UnityEngine.ResourceRequest吗?

时间:2019-03-29 14:59:55

标签: c# unity3d

我被困在更新我的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;
}

通常看起来像: enter image description here

但是使用UnityWebRequest时,它看起来像: enter image description here

我在他们的文档中没有找到有关此案的任何文章。还要为UnityWebRequest和ResourceRequest挖掘整个API,并且没有找到有关如何转换/广播的任何信息,就像WWW一样。也许有人知道解决方案?

1 个答案:

答案 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