您的位置:首页 > 移动开发 > Unity3D

UNITY 异步加载场景的一个例子

2017-07-14 11:49 381 查看


假如,我们有 两个场景,

现在,我们希望从 A 转到 B ,

假如,这个过程,需要5秒钟,那么,我们希望不是 “卡住”5秒,而是 动态的5秒,

如果这5秒钟内,我能看到一个进度条 从 10% 逐渐的转到 90%时, 至少我们知道,游戏不是死机了,而是正在加载中

可以这样,

using UnityEngine;

using System.Collections;

public class LoadingScene : MonoBehaviour {

AsyncOperation  asyn;

void Start () {

StartCoroutine("BeginLoading");
}

// Update is called once per frame
void Update () {

Debug.LogError ("update:" + asyn.progress);
}

IEnumerator BeginLoading()
{

asyn = Application.LoadLevelAsync ("scrollViewTest");
yield return asyn;
}

}

这里, Update 每帧 的进度 可以通过 asyn.progress获取,

StartCoroutine 就像是说 , 我现在要异步调用一个函数了 ,

LoadLevelAsync 表示 异步加载,

异步加载和同步加载的区别有点像什么呢?

一种是我们需要先停下来,等待某件事情结束之后,再接下来做其他事情。

这有点像,我们先询问某个人的电话号码后,才能给他打电话联系到他。

我们此刻,除非联系到他,才能接下来的行动,

另一种,有点像,我们发了一条短信,发了短信后,就等他回消息就可以了,

可能他一分钟内就能回复,也可能一天后回复。

可能我们只是询问一下包裹到没到。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: