我制作和Android 2d游戏在团结5中用大约15个场景并应用场景改变脚本到按钮,我通过onclick按钮观察场景变化的不均匀延迟,一些场景加载很快而其他负载经过短暂的延迟约1~ 2秒,有时2~3秒,建议可以做些什么。
答案 0 :(得分:0)
准确但可能不受欢迎的答案:
Unity scenese,当你加载一个新的时,必须从磁盘反序列化(它们不保留在内存中!)。场景越大(游戏对象,单体游戏等等越多),这个过程需要的时间越长。此外,每个 MonoBehaviour脚本都需要发送Awake()
和Start()
has some significant overhead的调用。
您可以通过使用较少的具有Awake和Start方法的脚本(在单个主脚本的不同方法签名下调用相同的逻辑)以及总体上更少的脚本(进一步集中您的程序)来减少开销,以及在Fast But No Exceptions
和.NET Subset
下编译游戏(但这些都不适用于编辑器运行),这两个都在之前的链接文章中提到过。
Unity也可能以资源格式(clunky and slow)编译场景,您可能会因使用Asset Bundles而受益。
然而,无论您的优化工作是什么(存在少数选项),您仍然会受到各种场景之间的加载时间的限制。一个复杂的场景总是需要更长的时间来转换到一个较小的场景, 。