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

暂列提纲,详细内容待补充