SceneManager.LoadSceneAsync() 中发生了什么

Rod*_*ers 2 c# unity-game-engine

有两个阶段SceneManager.LoadSceneAsync()

首先是preload阶段。第二activation阶段。

每个阶段究竟加载什么?

Pro*_*mer 5

预加载场景

在后台加载一个场景。在此期间,会加载该场景中引用的纹理、音频和 3D 模型等资源。

激活场景

当加载的场景被激活时,当前场景被卸载,加载的场景将被激活。当它变为活动状态时,它将开始执行该场景中引用的脚本。

SceneManager.LoadSceneAsync将在后台加载场景。加载场景后,它会自动激活。激活完成后,Unity 将启用加载的场景,加载的场景将成为当前场景。

控制场景激活

有时,您想在当前游戏即将结束时加载下一个场景,但您不希望它在当前游戏完成之前激活它。您正在预加载场景。这可以AsyncOperation.allowSceneActivation通过将LoadSceneAsync函数返回的属性设置为 来完成false。通过将其设置为false,场景将加载但不会激活或运行,直到您将其设置为true。假设您已经完成了当前场景的播放,然后您可以激活下一个场景,这实际上减少了玩家等待场景完成加载的时间。游戏结束后加载和激活下一个场景将比简单地激活场景花费更多的时间。