没有太多乱七八糟的东西
就是一个简单的进度条 用来显示 场景异步加载
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class S3Manager : MonoBehaviour {
private Slider _slider; //定义一个滑动条
private AsyncOperation _asyn; //定义一个异步加载
private int _currProgress; //定义一个当前进度
void Start () {
//初始的时候
_currProgress = 0; //当前进度为0
_asyn = null; //异步加载为空
_slider = GameObject.Find("Slider").GetComponent<Slider>(); //找到滑动条并得到组件
StartCoroutine("HAHA"); //开始协同程序
}
// Update is called once per frame
void Update () {
_slider.value = _currProgress / 100.0f; //在Update里 滑动条的值一直等于当前进度除以100 因为value最大为1
}
IEnumerator HAHA()
{
int tmp; //定义一个临时变量
_asyn = SceneManager.LoadSceneAsync("04"); //异步加载到场景 04
_asyn.allowSceneActivation = false; //进度不到100% 不显示04场景
while(_asyn.progress < 0.9f) //异步加载的进度小于0.9时 一直循环
{
tmp = (int)_asyn.progress * 100; //强制转换为int
while(_currProgress < tmp) //滑动条竖直小于 tmp
{
_currProgress++; //一直改变
yield return new WaitForEndOfFrame(); //直到结束
}
}
//whlie结束 进度到90%
tmp = 100; //当临时变量为100时
while(_currProgress < tmp)
{
_currProgress++;
yield return new WaitForEndOfFrame();
}
_asyn.allowSceneActivation = true; //激活04的场景
}
}