异步加载

来源:互联网 发布:南通大学网络 编辑:程序博客网 时间:2024/05/19 19:59
using UnityEngine;using System.Collections;using UnityEngine.UI;using UnityEngine.SceneManagement;public class Loading : MonoBehaviour{    public Slider processBar;    private AsyncOperation async;    private int nowProcess;    public Text _text;    void Start()    {        StartCoroutine(loadScene());    }    /// <summary>      /// 加载完场景后就会跳转      /// </summary>      /// <returns></returns>      IEnumerator loadScene()    {        async = SceneManager.LoadSceneAsync("123");        async.allowSceneActivation = false;        yield return new WaitForEndOfFrame();    }    void Update()    {        if (async == null)        {            return;        }        int toProcess;        // async.progress 你正在读取的场景的进度值  0---0.9            // 如果当前的进度小于0.9,说明它还没有加载完成,就说明进度条还需要移动            // 如果,场景的数据加载完毕,async.progress 的值就会等于0.9          if (async.progress < 0.9f)        {            toProcess = (int)async.progress * 100;        }        else        {            toProcess = 100;        }        // 如果滑动条的当前进度,小于,当前加载场景的方法返回的进度           if (nowProcess < toProcess)        {            nowProcess++;        }        processBar.value = nowProcess / 100f;        _text.text = nowProcess.ToString() + "%";        // 设置为true的时候,如果场景数据加载完毕,就可以自动跳转场景           if (nowProcess == 100)        {            async.allowSceneActivation = true;        }    }}
个人学习收藏,不做他用