1.确定各平台纹理格式(内存、流畅性、包体大小)
统一ASTC,OPENGL ES 3.1之后统统支持(2014年后机型)
2.制定不同资源 AssetBundle 打包策略(流畅性、包体大小)
启动、热更界面资源与游戏内资源分开处理
AB包控制在1~10MB左右,小资源(icon、配置等)合并为1个AB,大资源(立绘、spine、图集)单独1个AB
shader打成一个ab
公共材质打ab,特定材质可以和粒子打一起
3.制定UI 界面预加载、分段加载策略(流畅性)
多语言资源与预制并行加载
多tab、多页的页面可以分段分帧加载或实例化
4.规范图集使用策略(内存、流畅性)
图集不宜过大(不超过一张2048)
大的部分用散图,维护好公共图集,避免反向使用图集
5.处理网络请求(流畅性)
与资源加载并行,接口内容不宜过大,否则json解析时造成主线程卡顿(也可挪至子线程)
6.配置表查找(流畅性)(排序)等等引起的卡顿优化
冗余配表删减(内存)
7.shader变体优化(内存)
multicomplie或生成所有变体,不会丢失,但内存占用较大,运行时程序动态切换的话可以考虑使用
shaderfeature需要收集变体
与相关材质打在一起
或unity跑全场景生成shadervariantcollection
或写工具生成shadervariantcollection
或always include
8.stream读写优化
9.组件优化(流畅性)(多个小组件改一个大组件、节点优化减少节点数量,粒子效果优化,减少嵌套粒子)
10.减少反复实例化,合理使用对象池(流畅性)
11.性能标准制定:芯片(高端门槛骁龙865)、面数(30W内-100W)、Batch(150内-300)、粒子数、内存分布(托管:mono,il2cpp,会产生GC;非托管:nativearray,原生内存)
托管内存优化(减少linq的使用)
12.降低RT分辨率(内存)Screen.SetResolution
暂列提纲,详细内容待补充