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