本文主要是代码上的理解,关于场景跳转时UI方面的Image进度条以及百分比表示进度比较简单,暂时不讨论
在unity中加载场景要先引入命名空间
using UnityEngine.SceneManagement;
加载场景分为同步加载和异步加载,同步加载就是直接跳转,遇到电脑配置差或者要跳转的场景大,很容易卡;
异步加载场景正好解决了卡帧的问题
对于一般的场景,要进行异步加载的话,会使用到两个场景,
有时也会用到三个场景,即一个用于中介,中介场景只有背景和进度条或者用到百分数的方式过渡场景
这里介绍两种异步的方式:
1、使用两个场景跳转,主要用到allowSceneActivation属性,设为false让场景加载但是不跳转,使用协程在一段时间后把属性的值设为true,让场景跳转;
2、使用三个场景跳转,主要用到AsyncOperation.progress属性,异步加载的进度,返回0~1的float值;
两者的比较:
1、前者适用于目标场景较小的场景加载,优点是加载时UI的百分比流畅,但是场景过大时存在场景未加载完,计时结束了使得跳转卡帧
2、后者使用于目标场景过大的场景加载,优点在于保证了跳转的流畅,不卡帧,但是对于目标场景过小时,也会出现加载过快使得跳转过程可能不显示