Addressables: PercentComplete did not started from 0 and suddenly reach 1

Hi everyone, I wonder why PercentComplete started from 0.5 and after some time after reaching aprox 0.75 it goes up to 1 directly ?

    void Start()
    {
       StartCoroutine(OnLoad(Addressables.DownloadDependenciesAsync("Prefabs")));

    }
    IEnumerator OnLoad(AsyncOperationHandle obj)
    {
        while (obj.IsDone == false)
        {
            yield return new WaitForSeconds(.1f);
            progressImg.fillAmount = obj.PercentComplete;
            percentCopmlete1.text = obj.PercentComplete * 100f + "%".ToString();
        }
        
    }

Solved by just changing “obj.PercentComplete” by “obj.GetDownloadStatus().Percent

IEnumerator OnLoad(AsyncOperationHandle obj)
     {
         while (obj.IsDone == false)
         {
             yield return new WaitForSeconds(.1f);
             progressImg.fillAmount = obj.GetDownloadStatus().Percent;
             percentCopmlete1.text = obj.GetDownloadStatus().Percent * 100f + "%".ToString();
         }
         
     }

I have the same situation when loading bundles from server: it starts from 0.0, then gets stuck at 0.5 for almost all the time of a bundle being downloaded and in the end quickly jumps to 0.77, 0.95 and then to 1.0.

same here!

Has anyone solved this issue yet? Nearly a year later and it still seems to happen in the current Addressables version.

Still happening, Unity 2021.1.6, for me the file completes just fine if the complete size of the build folder is under 100 mb…

You can find some sort of “detailed info” in this link:
https://docs.unity3d.com/Packages/com.unity.addressables@1.18/manual/DownloadDependenciesAsync.html

AsyncOperationHandle.PercentComplete: reports the percentage of sub-operations that have finished. For example, if an operation uses six sub-operations to perform its task, the PercentComplete indicates the entire operation is 50% complete when three of those operations have finished (it doesn’t matter how much data each operation loads).

AsyncOperationHandle.GetDownloadStatus: returns a DownloadStatus struct that reports the percentage in terms of total download size. For example, if an operation has six sub-operations, but the first operation represented 50% of the total download size, then GetDownloadStatus indicates the operation is 50% complete when the first operation finishes.

Resuming, use AsyncOperationHandle.GetDownloadStatus().Percent to get the actual download progress (0 to 1).