Unity异步加载场景
程序员文章站
2022-04-03 12:28:45
...
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class LoadScene : MonoBehaviour
{
private AsyncOperation async;
public Slider slider;
public Text text;
public Text CurLevel;
void Start()
{
CurLevel.text = PlayerPrefs.GetInt("CurLevel", 1).ToString();
StartCoroutine("Load");
}
IEnumerator Load()
{
//异步加载场景
async = SceneManager.LoadSceneAsync("GameScene");
//不允许自动加载场景
async.allowSceneActivation = false;
while (!async.isDone && async.progress < 0.8f)
{
yield return async;
}
}
void Update()
{
if (async.progress < 0.8f)
{
slider.value = async.progress;
}
else
{
slider.value = 1;
async.allowSceneActivation = true;
}
text.text = (slider.value * 100).ToString("0") + "%";
}
}
async.progress值达到0.8时就已经记载完成了。