提升Unity WebGL游戏启动速度
创作时间:
作者:
@小白创作中心
提升Unity WebGL游戏启动速度
引用
CSDN
1.
https://blog.csdn.net/2301_79022588/article/details/140025811
Unity WebGL游戏的启动速度是影响用户体验的关键因素之一。本文将从技术层面深入探讨Unity WebGL游戏的启动流程,并提供具体的优化建议,帮助开发者提升游戏的启动速度。
查看启动耗时
通过修改unity-namespace.js
中hideTimeLogModal
为false
,显示timelog
开发者可以看到小游戏目前的启动首屏时长:
将其设置为false
后,启动小程序后就会显示启动耗时
要知道各个阶段的含义,我们必要理解启动流程。
其中关键过程:
- 启动准备阶段有两个处理分支:资源与代码分包处理,两者并行。
- 资源(data)处理:下载、解压并保持在内存,资源包括:构建场景及依赖、Resource目录所有资源、Unity默认内建资源。
- 代码分包(wasm.code.br)处理:下载代码分包,解压到内存、编译与实例化。
- 完成准备阶段后进入Unity引擎初始化与首场景加载。
然而小游戏启动主要由三部分影响:
- 首包资源下载
- WASM代码下载和编译
- 引擎初始化与开发者首帧逻辑
因此可以从三个方面来优化启动时间
1. 首资源包下载与体积
首包资源(webgl/Build目录下的data文件)主要有以下组成:
- unity default resources文件,引擎默认资源,如Arial字体,默认mesh,纹理等。
- il2cppmetadata, C#代码使用il2Cpp生成cpp代码时,生成的类,方法等信息。
- unity builtin_extra, always include的shader。
- BuildSettings中所有active的场景。
- Resources文件夹中的资源,以及其中的资源引用到的其他资源。
- 全局设置及引用到的资源,如splash图片等。
首次下载或更新首资源包时,需要在小游戏的启动前期下载,因此文件大小极为影响游戏的启动速度。
因此要对首资源包进行压缩传输,使用微信开发者工具的network标签确认传输量,网络传输大小应控制在3~5MB。
2. WASM代码下载和编译
WASM分包的大小会直接影响代码下载时长以及程序初始化编译的时间,关于WASM代码对启动速度的影响,需要注意以下几个方面:
- 转换工具会将Unity WebGL包自动进行br压缩(压缩至原code包的20%)。
- WASM代码下载与首包资源并行下载,因此占用下载带宽。
- WASM编译需要CPU资源,对于低端机来说时间依然可观。
因此原始代码包(webgl/Build目录下的code文件)不超过30MB, 建议开发者勾选"Strip Engine Code"并设置"Managed Stripping Level"为High。同时,可以使用代码分包工具将代码包减少到原始尺寸的到1/3。
勾选"Strip Engine Code"
这个选项的作用是去除Unity引擎中未使用的代码,从而减少最终构建的代码包大小。
设置"Managed Stripping Level"为High
用于控制对C#脚本的代码剥离级别。设置为"High"意味着Unity将更积极地去除未使用的代码和资源,进一步减小包大小。
步骤如下:
- 打开Unity编辑器。
- 选择"Edit"(编辑)菜单,然后选择"Project Settings"(项目设置)。
- 在弹出的窗口中,选择"Player"(玩家)。
- 在"Player Settings"窗口中,找到"Other Settings"(其他设置)部分。
- 勾选"Strip Engine Code"选项。
- 在"Managed Stripping Level"下拉菜单中选择"High"。
3. 引擎初始化与开发者首帧逻辑
在timelog中呈现的首场景耗时即为引擎初始化与开发者首帧逻辑,关于该阶段耗时,需要注意的是:
- MonoBehaviour脚本的首帧Start/Awake应足够少逻辑,以避免增加首帧的加载时间,优先将画面呈现。
- 初始场景应该尽量简单,通常是一个Splash屏幕(启动画面),这样可以快速加载,减少用户的等待时间。
- 初始场景中需要后续主场景或配置加载时可采取分帧策略,避免在Start或Awake方法中执行长时间的操作或阻塞调用,因为这会延长首帧的执行时间,影响用户体验。
- 可以使用预下载功能,该功能可以利用此阶段的网络空闲期进行资源下载。
热门推荐
软件定义了什么:探索软件的本质与功能
天国拯救2马匹排行榜:七种马匹特点与适用场景全解析
构建药品质量保证体系,确保患者安全用药
住宅物业收费标准调整九问九答
股市双头现象意味着什么?这种现象如何影响市场?
从 FC、NFC 到 HPP 果汁,它们有什么区别?
北京大学教师工资待遇详解:18-24万年薪,网友:这是真的吗?
北京大学教师工资待遇详解,在18—24万之间,网友:这是真的吗
这届年轻人选择“穷养自己,富养宠物”
大筒木舍人:从吐槽到T0,全能忍者凭何逆袭?
脾胃湿热吃什么食物好
甜味之源:全球不同文化下的甜食鉴赏
商业模式画布BMC入门指南:模块、实操与工具
大型APP的产品经理是怎么优化迭代产品的
软件工程中的7种耦合和内聚(详解)
DHA:大脑发育与记忆力提升的关键营养素
A股:散户找不到主力?只需看一眼“OBV指标”就够了,简单又实用
阳江之旅:山海间的岭南明珠日记
越厉害的领导,越懂得这样和下属谈心
新买的四件套需要洗吗?如何正确清洗床上四件套?
照顾猫咪的清洁卫生(宠物爱好者必看的15个小贴士)
金钱能买来胜利吗?评估里皮天价薪资对中国足球的影响
甲木生于午月木火通明:命理学中的五行平衡与挑战
低脂蔬菜沙拉制作指南:健康美味两不误
遇见色彩 | 温暖月光色,随人千里,一夜入梦
如何通过技能培养促进孕妇的情绪稳定?
别再被误导了!光伏发电5年回本到底是真是假?
揭秘番茄细菌性斑点病:发生规律与综合防治策略
项羽至死不愿渡江的真相:只因他发现了一个秘密,他彻底绝望了
高考和模拟考试的成绩差距大吗?退休多年班主任说出实话,不一样的地方有很多!