
加载场景和异步加载场景都是可用于Unity加载场景的俩种表现方法,加载关卡的技术根据自身积累的操作方式可能也会有所不同,那在 Unity 中加载新场景其实也非常简单的,只需要一行代码。
其中的加载场景(Load Scene) 是当程序运行时加载状况立马加载下一帧:
SceneManager.LoadScene(sceneToLoad);
那么这种方法加载场景时,游戏将会停止运行,其中的游戏音频会继续播放,但在加载完成之前游戏的状态是无响应的,让大家感觉游戏已经卡主,崩溃了,这种方式很不友好。
但是,可以使用异步加载场景 (Load Scene Async)在后台异步加载下一个场景,同时仍然允许游戏运行。
异步加载场景的工作方式与加载场景类似,不同之处在于加载是作为后台操作进行的并且分布在多个帧上的:
SceneManager.LoadSceneAsync(sceneToLoad);
这种方法可能更适合游戏玩家的心情,有个实时反馈,至少这样可以保持当前场景的运行,直到新场景入画。
当然如果加载屏幕包含图标等这些动画元素,则这些只能在后台加载场景时起到作用。
作为异步加载,可以选择使用 AsyncOperation.isDone 检查加载什么时候可以完成,甚至可以获取当前的加载进度,这在制作加载进度条时很有用的。