Advertisement

Unity性能优化方法的总结与实践

阅读量:

1 资源分离打包与加载

在游戏开发过程中,多个位置可能会调用相同的资源。例如,某些界面可能共享同一款字体或图集,不同场景可能使用相同的贴图,部分怪物也可能共用同一个Animator组件等。在构建游戏安装包时,可以将这些被多处引用的公共资源从其他资源中独立出来,并进行单独打包处理。例如,如果资源A和B均引用了资源C,则可将C独立打包为一个bundle文件。当游戏运行时,若需加载A,则优先加载C;若后续需要加载B,则由于C的实例已存在于内存中,只需直接加载B并使其指向C即可。若未将C从A和B中分离出来,则A和B各自的安装包中都会包含一份C的副本,这会导致安装包体积增加;同时,在运行阶段若同时加载A和B,则内存中会出现两个独立的C实例,从而显著增加内存占用。

通过实施资源分离打包与加载策略,能够有效降低安装包体积以及运行时的内存消耗。通常而言,打包粒度越精细,这两个指标越低;此外,在两个相邻renderQueue中的DrawCall使用相同贴图、材质及shader实例的情况下,这两个DrawCall可被合并处理。然而,并非打包粒度越细越好。当需要同时加载大量小体积bundle时,其加载速度会明显下降——因为时间会被消耗在协程调度及多次小规模I/O操作上;而且DrawCall合并并不一定提升性能,在某些情况下甚至可能导致性能下降(后文将进一步说明)。因此,在实际操作

全部评论 (0)

还没有任何评论哟~