统一优化笔记

优化笔记

统一打包资源包含哪一些:

<李>

1。资源文件下被程序应用的资源。优化方案:

<李>

①对删除被引用文件内没有被用到的资源。

<李>

②尽量把需要用到同时在一起出现的纹理放在一个图集中。

<李>

2。streamingAssets文件夹下面的所有资源。优化方案:

  • ① 删除不必要的资源,比如不要把安卓下的资源打包到iphone中。

  • ② 在大bundle的时候,可以考虑bundle的压缩。

把资源打成bundle对资源的影响

  • 优点:会降低包的的大小。

  • 缺点:需要花一点时间进行减压资源。

纹理格式对性能和包大小影响

  • 对没有特殊要求的图片:

  • 安卓

    • 通常使用RGBA16 ,1024*1024 资源大小和占内存都是 2M

    • 推荐使用 ETC + A  , 1024 * 1024资源大小和内存大小 1M(只有在openGL 2.0以上可以使用,因为在GPU不支持ETC时,会把压缩的图减压成原图大小及RGBA32)。

  • ios

    • 通常使用pvrtc,1024 * 1024资源大小和占内存都是1M。

  • 注意:在移动平台上一个好的压缩格式,可以减小包和咱内存的大小。假如要支持多个平台,建议对不同平台进行相应的压缩。

  • 压缩格式缺点:由于图片被压缩了,所以在一定程度会出现一点折损。有的时候会出现黑边情况。当有图有这种情况时,建议使用原图,不要压缩。

drawcall优化

  • 优化drawcall关键在于----效果,粒子,材质,pass等等。

动画的优化

  • 可以考虑最后的死亡动画和其他动画分离开来。

    • 灵活性更高,可以使用不同的材质用于死亡

    • 减少对其他脚本的维护

针对低端机优化

  • 设备不同的代支持不同功能,性能差别很大。应查询设备的代,并确定应禁用哪些功能以补偿较慢的设备

shader 优化

  • 在手游,由于对性能要求比较高,所以不建议使用SurfaceShader。因为SurfaceShader是一个比较“通用”的功能,而通用往往导致性能不高

  • 特征是在SubShader里出现CGPROGRAM和ENDCG块。(而不是出现在Pass里。因为SurfaceShader自己会编译成多个Pass。)

动画的优化

  • 使用身体遮蔽的好处是它们有助于减少内存开销,因为不活动的身体部位无需关联动画曲线。此外,不使用的曲线无需在播放过程中进行计算,这有助于减少动画的 CPU 开销。

优化内置 iOS 播放器的大小

  • 减少播放器大小的两种主要方式是更改 Xcode 中的活动生成配置 (Active Build Configuration) 以及更改 Unity 的剥离级别 (Stripping Level)

如何让发布版本尽可能的小的简单清单。

  • 最小化资源:启用 PVRTC 纹理压缩,尽可能降低其分辨率。同时,尽量减少未压缩的音频数量。点击此处,查看更多减少文件大小的提示。

  • 设置 iOS 剥离级别为使用 micro mscorlib。

  • 设置脚本调用优化级别为快速但不支持异常 (Fast but no exceptions)。

  • 切勿让代码与 System.dll或System.Xml。dll产生任何关联,这些库不与微mscorlib兼容。

    <李>

    删除不必要的代码依赖性。

    <李>

    设置API兼容级别为。net 2.0子集。请注意,。Net 2.0子集与其他库的兼容性非常有限。

    <李>

    设置目标平台(目标平台)为armv6 (OpenGL ES1.1)。

    <李>

    切勿使用JS数组。

    <李>

    避免泛型容器与结构等数值类型相结合。

注意:但凡方便的功能,里面就必然有性能陷阱

对图集压缩时,一定要注意,图集必须是正方形,同时图集的长和宽必须是2的幂。

把200的安装包压缩到50米安装包的方法:

<李>

把所有能压缩的纹理都压缩.ios选着使用pvrtc,安卓使用等+ apl通道。

<李>

把所有的大图拆成小图。

<李>

把能放到资源负上的资源,都放到资源服上,进行动态加载。

统一优化笔记