欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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时就已经记载完成了。