Unity3D异步加载

来源:互联网 发布:人工智能电影图片 编辑:程序博客网 时间:2024/06/03 14:59

在unity3D中除了简单的同步加载,代码如下

using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.SceneManagement;public class StartGame : MonoBehaviour{    public void BtnChanged() {        SceneManager.LoadScene(0);    }}

还有异步加载,主要是为了在Loading场景中展现进度条,使得切换场景中不枯燥,有一定的交互性

using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;using UnityEngine.SceneManagement;public class LoadingScene : MonoBehaviour {    public Image progressImg;    public Text text;    private AsyncOperation async;    private int curProgressValue = 0;// Use this for initializationvoid Start () {        StartCoroutine(LoadScene());}// Update is called once per framevoid Update () {        if (async == null)        {            return;        }        int progressValue = 0;        if (async.progress < 0.9f)        {            progressValue = (int)async.progress * 100;        }        else        {            progressValue = 100;        }        if (curProgressValue < progressValue)        {            curProgressValue++;        }        text.text = curProgressValue + "%";        progressImg.fillAmount = curProgressValue / 100f;        if (curProgressValue == 100)        {            async.allowSceneActivation = true;        }}    IEnumerator LoadScene()    {        async = SceneManager.LoadSceneAsync(1);        //加载到90%不会直接跳转        async.allowSceneActivation = false;        yield return async;    }}

原创粉丝点击