在Unity中,时常会遇到加载某个场景或者加载某个资源并且用一个进度条来显示加载进度,那么就要用到异步加载了,或者还有时,游戏需要一个加载场景的进度条,为了好看,但是又没有很大的资源需要加载,那么这时就可以做一个模拟的进度条。
异步加载
//进度条
UISlider slider;
//异步加载进度变量
AsyncOperation asyn;
void Start()
{
slider = this.GetComponent<UISlider>();
StartCoroutine("BeginLoading");
}
void Update()
{
if (asyn != null)
{
Debug.Log(asyn.progress);
slider.value = asyn.progress;
}
}
IEnumerator BeginLoading()
{
asyn = SceneManager.LoadSceneAsync("PlantWarZombie_Game");
//当异步的进度达到100%之后,就相当于后台进行加载完成了,程序会自动切换场景到目标场景中
yield return asyn;
}
模拟加载
//进度条
UISlider slider;
/// <summary> 当前百分制进度 </summary>
float curProgress = 0;
void Start()
{
slider = this.GetComponent<UISlider>();
}
void Update()
{
if (curProgress < 100)
{
curProgress++;
slider.value = curProgress / 100.0f;
}
else
{
SceneManager.LoadScene("PlantWarZombie_SetData");
}
}