1:CPU
1:分帧
1:例如Prefab非常大,分摊Instantiate耗时,第一帧先Instantiate背景板再Instantiate其他
2:减少DrawCall
1: 合批(打图集,GPU Instancing,动态静态)
4: 预加载
1:在非敏感时期例如在loading界面预加载bundle甚至Instantiate然后隐藏
5:异步加载
1:在资源还不需要使用的时候异步加载,或者先同步加载一个低模然后异步替换
6: 对象池
1:空间换时间
7:贴图
1:利用TexturePacker增加图集利用率
2:根据场景需要(可见大小)减少图片大小,2048-1024-512
3:贴图压缩格式 ASTC越来越大
2:GPU
1:Occlusion culling
Unity的遮挡剔除(Occlusion Culling)是一种优化技术,用于在渲染场景时排除不可见的物体,从而减少渲染的工作量,提高游戏的性能。遮挡剔除的原理是通过在场景中放置一些遮挡体(Occluder),这些遮挡体可以是静态的,也可以是动态的。在渲染过程中,Unity会根据相机的视野和遮挡体的位置,计算出哪些物体被遮挡而不可见。然后,这些被遮挡的物体将被标记为不需要渲染,从而减少渲染的工作量。
2:LOD
1:优化LODGroup
参考:Unity网格内存优化(MeshStreaming) - 知乎
3:减少OverDraw
4: 减少光照阴影
根据光源位置查找不同烘焙好的LightMap
5: 减少带宽
UI的纹理Mip Maps关闭
6: 分辨率设置
7: Shader Lod