首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UnityWebRequest到UnityEngine.ResourceRequest?

UnityWebRequest到UnityEngine.ResourceRequest?
EN

Stack Overflow用户
提问于 2019-03-29 14:59:54
回答 1查看 182关注 0票数 0

我正忙于更新资源(AssetBundles)更新程序/管理器的代码。我使用的是过时/废弃的WWW类,对于UnityWebRequest,我无法理解如何使这段代码再次工作:

代码语言:javascript
复制
   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);
    }

它呼吁:

代码语言:javascript
复制
public void UpdateProgress(ResourceRequest resourceRequest)
{
    isDone = resourceRequest.isDone;
    progress = resourceRequest.progress;
}

通常情况下它看起来是:

但是对于UnityWebRequest,它看起来像:

我在他们的文件里没有找到关于那个案子的任何文章。还可以为UnityWebRequest和ResourceRequest挖掘整个API,并且没有发现任何关于如何转换/转换的信息,就像WWW已经做的那样。也许有人知道解决办法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-29 15:07:51

正如错误告诉您的那样,您的方法只接受ResourceRequest作为参数,而不是UnityWebRequest

除了明显的WWW之外,UnityWebRequest不继承ResourceRequest

要更改它很简单,因为有UnityWebRequest.downloadProgress

把它改成

代码语言:javascript
复制
public void UpdateProgress(UnityWebRequest www)
{
    isDone = www.isDone;
    progress = www.downloadProgress;
}

注意:

我也不知道您实际上是从哪里开始发送请求的,因此不会有任何进展:

代码语言:javascript
复制
www.SendWebRequest();

比你还能用的

代码语言:javascript
复制
var www = new UnityWebResquest(URL);

但请注意,这是一个通用请求,您必须自己添加诸如DownloadHandlerUploadHandler等内容,并定义类型(参见UnityWebRequest)。

在您的情况下,我宁愿使用UnityWebRequest.Get,它会自动添加所需的处理程序等等。统一还建议与using一起使用它。

代码语言:javascript
复制
using(var www = UnityWebRequest.Get(URL)
{
    www.SendWebRequest();
    while(!www.isDone){
    ...
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55420218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档