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

本文介绍如何在Unity中实现两个场景之间的平滑过渡,通过使用异步加载技术,让玩家在等待过程中看到进度反馈,提升用户体验。文章详细解释了异步与同步加载的区别,并提供了具体的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


假如,我们有 两个场景,


现在,我们希望从 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 表示 异步加载,


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


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


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


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


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


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


可能我们只是询问一下包裹到没到。





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值