1. resources文件下被程序应用的资源。优化方案:
①对删除被引用文件内没有被用到的资源。
② 尽量把需要用到同时在一起出现的纹理放在一个图集中。
2. streamingAssets文件夹下面的所有资源。优化方案:
① 删除不必要的资源,比如不要把安卓下的资源打包到iphone中。
② 在大bundle的时候,可以考虑bundle的压缩。
优点:会降低包的的大小。
缺点:需要花一点时间进行减压资源。
对没有特殊要求的图片:
安卓
通常使用RGBA16 ,1024*1024 资源大小和占内存都是 2M
推荐使用 ETC + A , 1024 * 1024资源大小和内存大小 1M(只有在openGL 2.0以上可以使用,因为在GPU不支持ETC时,会把压缩的图减压成原图大小及RGBA32)。
ios
通常使用pvrtc,1024 * 1024资源大小和占内存都是1M。
注意:在移动平台上一个好的压缩格式,可以减小包和咱内存的大小。假如要支持多个平台,建议对不同平台进行相应的压缩。
压缩格式缺点:由于图片被压缩了,所以在一定程度会出现一点折损。有的时候会出现黑边情况。当有图有这种情况时,建议使用原图,不要压缩。
优化drawcall关键在于----效果,粒子,材质,pass等等。
可以考虑最后的死亡动画和其他动画分离开来。
灵活性更高,可以使用不同的材质用于死亡
减少对其他脚本的维护
设备不同的代支持不同功能,性能差别很大。应查询设备的代,并确定应禁用哪些功能以补偿较慢的设备
在手游,由于对性能要求比较高,所以不建议使用SurfaceShader。因为SurfaceShader是一个比较“通用”的功能,而通用往往导致性能不高
特征是在SubShader里出现CGPROGRAM和ENDCG块。(而不是出现在Pass里。因为SurfaceShader自己会编译成多个Pass。)
使用身体遮蔽的好处是它们有助于减少内存开销,因为不活动的身体部位无需关联动画曲线。此外,不使用的曲线无需在播放过程中进行计算,这有助于减少动画的 CPU 开销。
减少播放器大小的两种主要方式是更改 Xcode 中的活动生成配置 (Active Build Configuration) 以及更改 Unity 的剥离级别 (Stripping Level)
最小化资源:启用 PVRTC 纹理压缩,尽可能降低其分辨率。同时,尽量减少未压缩的音频数量。点击此处,查看更多减少文件大小的提示。
设置 iOS 剥离级别为使用 micro mscorlib。
设置脚本调用优化级别为快速但不支持异常 (Fast but no exceptions)。
切勿让代码与 System.dll 或 System.Xml.dll 产生任何关联,这些库不 与 micro mscorlib 兼容。
删除不必要的代码依赖性。
设置 API 兼容级别为 .Net 2.0 子集。请注意,.Net 2.0 子集与其他库的兼容性非常有限。
设置目标平台 (Target Platform) 为 armv6 (OpenGL ES1.1)。
切勿使用 JS 数组。
避免泛型容器与结构等数值类型相结合。
注意: 但凡方便的功能,里面就必然有性能陷阱
把所有能压缩的纹理都压缩。ios 选着使用pvrtc ,安卓使用ETC+apl 通道。
把所有的大图拆成小图。
把能放到资源负上的资源,都放到资源服上,进行动态加载。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。