在 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");
}
}