プロジェクトのシナリオ:
当初、読み込みの進行状況を取得するために PercentComplete 関数を使用していましたが、毎回 0.85 から計算されることがわかり、それは許可されていませんでした。公式ドキュメントでは、「PercentComplete は操作全体の進行状況を反映するものであり、実際には反映されません」と説明されています。ダウンロードの割合またはメモリへのロードのみを正確に表します。ダウンロードの %。"、"正確なダウンロードの割合を取得するには、GetDownloadStatus() を使用します。"
GetDownloadStatus().Percent: 完了した計算のパーセンテージを 0 ~ 1 の浮動小数点値として返します。
解決:
GetDownloadStatus().Percent を使用してダウンロードの進行状況を取得します
void Start()
{
StartCoroutine(LoadScene());
}
IEnumerator LoadScene()
{
// 异步加载场景(如果场景资源没有下载,会自动下载),
var handle = Addressables.LoadSceneAsync("SceneName");
if (handle.Status == AsyncOperationStatus.Failed)
{
Debug.LogError("场景加载异常: " + handle.OperationException.ToString());
yield break;
}
while (!handle.IsDone)
{
// 下载进度(0~1)
var percentage = handle.GetDownloadStatus().Percent;
Debug.Log("进度: " + percentage);
yield return null;
}
Debug.Log("场景加载完毕");
}