代码之家  ›  专栏  ›  技术社区  ›  Chico3001

显示UnityWebRequest的进度

  •  2
  • Chico3001  · 技术社区  · 8 年前

    我正在尝试使用下载assetbundle Unity Web Request 并显示进度,根据 the documentation 我需要捕获WebRequestAsyncOperation对象以查找进度,但找不到它

    我尝试使用AsyncOperation和UnityWebRequestAsyncOperation,我的例程可以同时使用这两种操作,使用其中一种有什么区别?

    这是我的代码:

    IEnumerator DownloadModel3D()
        {
            using (UnityWebRequest uwr = UnityWebRequest.GetAssetBundle(bundleURL,1,0))
            {
                //UnityWebRequestAsyncOperation request = uwr.SendWebRequest();
                AsyncOperation request = uwr.SendWebRequest();
    
                while (!request.isDone)
                {
                    Debug.Log(request.progress);
                    yield return null;
                }
    
    
                if (uwr.isNetworkError || uwr.isHttpError)
                {
                    Debug.Log(uwr.error);
                }
                else
                {
                    // Get downloaded asset bundle
                    AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(uwr);
    
                    assetBundleInstance = Instantiate(bundle.LoadAsset(assetName)) as GameObject;
                    assetBundleInstance.transform.position = transform.position;
                    assetBundleInstance.transform.localScale = new Vector3(.08f, .08f, .08f);
                    assetBundleInstance.transform.SetParent(transform);
                    contador.text = "Descargado: " + assetName + "\n" + bundleURL;
                }
            }
        }
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Doh09    8 年前

    我需要捕获WebRequestAsyncOperation对象以查找进度,但找不到它

    如果你是这个意思 WebRequestAsyncOperation 不同于 UnityWebRequestAsyncOperation ,结果是。


    UnityWebRequestAsyncOperation

    “”异步操作对象从返回 UnityWebRequest .SendWebRequest()。"

    这是您正在使用的方法。

    https://docs.unity3d.com/ScriptReference/Networking.UnityWebRequestAsyncOperation.html

    我尝试使用AsyncOperation和UnityWebRequestAsyncOperation,我的例程可以同时使用这两种操作,使用其中一种有什么区别?

    UnityWebRequestAsyncOperation继承自AsyncOperation,这意味着它们共享相同的字段,也可能共享相同的方法。UnityWebRequestAsyncOperation还有以下字段:

    webRequest 返回创建操作的关联UnityWebRequest。

    如果这不能回答您的问题,请详细说明。