Unity 异步加载场景
程序员文章站
2022-04-03 15:30:17
...
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
using Babybus;
public class LoadingManager : MonoBehaviour
{
public static int nextSceneId = -1;
public int sceneId = -1;
public GameObject loadingSceneCanvas;
private IEnumerator Start()
{
//yield return new WaitForSeconds(1);
BabySystem.ShowAdView();
yield return null;
sceneId = sceneId < 0 ? nextSceneId : sceneId;
if (sceneId == -1)
sceneId = 0;
var ao = SceneManager.LoadSceneAsync(sceneId);
ao.allowSceneActivation = false;
while (ao.progress < 0.9f)
{
yield return null;
}
yield return null;
ao.allowSceneActivation = true;
}
}
大概意思是这样,如果allowSceneActivation 为false , 进度条最终将停在0.9,然后IsDone 一直保存false,直到allowSceneActivation 被设置为true,可以**新场景。一般和LoadLevelAsync 与 LoadLevelAdditiveAsync组合使用。
注意加入上面那个0.9 改成大于0.9它就一直在while这个循环内,也就是不会跳转。
https://docs.unity3d.com/ScriptReference/AsyncOperation.html
下一篇: 图片加水印上传PHP