Unity3D 加载级别异步进度奇怪的行为

Unity3D Load Level async progress strange behaviour

我正在尝试异步加载场景,这样我就可以有一个漂亮的进度条,我发现返回的 AsyncOperation.progress 停在 0.9。我对此没有问题,但发生的事情是在那之后,加载场景最多需要 50 秒,并且不会显示进度。删除一些对象后,我发现有 1 个(主场景对象)导致了这个延迟。

我的问题是,有没有什么方法可以在前 90% 的加载中加载此对象(现在速度超快 - 1 秒)?

提前致谢

如果这个游戏对象在场景中,它会随场景一起加载。您遇到的问题是场景中的所有脚本逻辑。加载线程实际上已完成,但脚本、实例化等占用了所有设备资源,看起来卡在了 90%。

要解决这个问题,我认为您应该延迟所有脚本在 Awake 或 Start 方法上的执行。这应该会有所帮助,但在特定设备上执行脚本所需的所有时间仍然会占用所有 CPU,并且看起来会再次卡住。

所以,看来这一切都与我使用的物质有关。这对我来说真的很奇怪,因为我明确地将所有这些都检查为 "bake and discard substance" ,这似乎什么都不做。烘焙所有纹理并在 material 中从物质切换到纹理后,加载时间从 42 秒降至 1 秒