一、影响游戏加载速度的因素
1.网络速度、文件数量、文件大小
2.资源下载的并发连接数和每帧最大请求数
assetManager.downloader. maxConcurrency
maxConcurrency用于设置下载的最大并发连接数,若当前连接数超过限制,将会进入加载管线的等待队列。
assetManager.downloader. maxRequestsPerFrame
maxRequestsPerFrame用于设置每帧发起的最大请求数,从而均摊发起请求的CPU开销,避免单帧过于卡顿,如果此帧发起的连接数已经达到上限,将延迟到下一帧发起请求。
3.预制体依赖资源的复杂度
4.引擎解析函数的性能
5.添加节点后组件初始化函数的性能
6.数据文件格式
例png和jpg
二、优化方法
1.使用CDN提升资源下载速度
2.使用gzip提升资源下载速度
不建议开启gzip:
①图片类型资源
大部分图片如jpg,png文件本身就会进行压缩,所有就算开启了gzip后,压缩前和压缩后没多大区别。
②大文件资源
大文件的压缩和解压都对CPU的消耗大,且耗时较长。
3.使用图片压缩
4.图片打包
5.TTF字体资源优化
6.预加载引用的资源
7.调整下载并发数
maxConcurrency和maxRequestsPerFrame
8.预生成节点
在真正打开界面之前,预先在游戏的不可见区域中加载预制体或场景并添加节点,随后立即销毁。利用引擎的缓存、网络下载的缓存,材质编译的缓存、v8的优化缓存等提升相同节点的加载速度。
9.使用虚拟列表
只允许在可视范围中加载指定数量的节点,然后不断复用。
10.使用对象池优化重复加载