异步加载可以优化代码,相比同步加载,异步加载可以在UI界面添加Slider这个进度条和代码来实现异步加载,它可以提升用户体验,不会进入游戏场景后,场景加载还没完成。
使用异步加载记得引入命名空间
using UnityEngine.UI;
using UnityEngine.SceneManagement;//使用unity异步加载需要添加这个命名空间
public class Logins : MonoBehaviour {
public Slider slider;//获取到进度条
public Text progress;
private AsyncOperation async;//异步加载对象
//nowProgress 能看见的进度条 toProgress 接收progress这个值
private int nowProgress, toProgress;
// Use this for initialization
void Start () {
StartCoroutine("Load", 0);
}
IEnumerator Load(int index)
{
//异步加载到另外一个游戏场景
async = SceneManager.LoadSceneAsync(index);
//先不让场景跳转 在满足条件实现跳转
async.allowSceneActivation = false;
yield return async;
}
// Update is called once per frame
void Update () {
if(async.progress<0.9f)//这个值比较特殊只能到达0.9
{
toProgress = (int)(async.progress * 100);
}
else
{
toProgress = 100;
}
if(nowProgress<toProgress)
{
nowProgress++;
}
slider.value = nowProgress/100.0f;
progress.text = slider.value * 100 +"%";//百分比显示加载进度
if(nowProgress==100)
{
async.allowSceneActivation=true;
}
}
}