在 Unity 中用异步方式加载场景时,有时需要在界面上实时显示加载进度。下面通过 Application.LoadLevelAsync 返回的 AsyncOperation 对象,结合一个 UI Text 组件来展示当前的加载百分比。

实现思路

核心是在协程中启动异步加载,拿到 AsyncOperation 句柄后保存下来;然后在 Update 中持续读取它的 progress 字段,把数值格式化成百分比写入文本控件。

示例代码

using UnityEngine;
using System.Collections;
using UnityEngine.UI;


public class Loading : MonoBehaviour {
    AsyncOperation sync;

    [SerializeField]
    private Text _txt;



	IEnumerator Start () {
      sync=  Application.LoadLevelAsync("Scene");
      yield return sync;

	}

	void Update () {
        _txt.text = "Loading " + (sync.progress/1.0f *100).ToString("0");


	}
}