1、打开Unity3D软件,我们需要新建两个游戏场景。我的是:
2、看到我们新建了两个游戏场景,在NewScene场景中点击加载场景按钮,会异步记载切换到SampleScene场景。进行场景的切换。
在NewScene场景中新增一个Button和一个Slider。
3、我们新建一个LoadScene的脚本,挂载在摄像机MainCamera上。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class LoadScene : MonoBehaviour
{
public Slider slider;
private AsyncOperation asyncOperation;
private void Update()
{
if(asyncOperation != null)
{
slider.value = asyncOperation.progress;
}
}
IEnumerator loadScene()
{
asyncOperation = SceneManager.LoadSceneAsync("SampleScene");
yield return asyncOperation;
}
//异步加载场景
public void AsynScene()
{
StartCoroutine(loadScene());//开启一个协程
}
}
注意:AsyncOperation类是异步记载类,获取加载的进度。
IEnumerator 和StartCoroutine()结合使用,是一个创建一个协程,防止画面卡顿。
4、打包运行的时候需要对BuildSettings设置:需要把两个场景都放在这里面。
5、打包之后就可以运行了,实现的效果如下: