美文网首页
Unity资源优化

Unity资源优化

作者: 不正经的搬砖工 | 来源:发表于2021-08-25 18:18 被阅读0次

    1、音频

    (1)开启Force To Mono,强制单通道

    (2)加载方式:

    Streaming(边加载边播放、内存小、CPU消耗大):背景音乐

    Decompress On Load(加载时解压、内存大、CPU消耗小):适用于短小音频

    Compressed In Menory(压缩格式存在内存中、播放时解压、内存小、CPU消耗大):适用于大型音频文件

    (3)压缩格式:

    PCM:高保真、占用内存最大

    Vorbis:压缩比最高、有损压缩、质量低

    ADPCM:基于PCM的优化压缩、有损压缩

    图 1-1

    2、网格

    图 2-1

    (1)Mesh Compression:只影响占用磁盘大小,不影响内存占用。但是测试发现该压缩为有损压缩,如果使用High等级的压缩,游戏中效果会差很多。应该提前和美术约束每种模型Mesh数量的上限,这样就减少了后期优化的工作。

    Mesh Compression分4个等级:Off、Low、Medium、High

    (PlayerSettings中Vertex Compression影响运行时内存大小)

    (2)Optimize Mesh:重新排列多边形和顶点顺序,提高GPU性能

    (3)Read\Write  Enabled

    (4)剔除无用的属性:顶点颜色、UV2、UV3、UV3、Normal、Tagent

    Player Settings中Optomize Mesh Data打开可以剔除Mesh中无用的属性,但是该选项只是静态分析引用某个Mesh的材质的shader有没有用到这些属性,如果用到了就不会删除,未用到删除,这样可能导致代码中动态使用某个属性就会出错。可以关闭该选项,写工具剔除某些确定不用的属性。

    图 2-2

    (5)关闭Skinned Mesh Render中的Motion Vector(运动向量,一般用于运动模糊等后处理特效)开关,减少显存开销

    (6)模型骨骼数量:建议小于50,这个提前和美术约束不同模型骨骼上限

    3、特效

    图 3-1

    (1)限制最大粒子个数:一般Billboard渲染模式粒子发射数不超过30;Mesh模式网格发射数不超过5

    (2) Prewarm选项关闭:开启后会执行一次完整的模拟,可能导致第一帧加载的卡顿

    (3) 限制特效使用贴图总数、贴图尺寸、ParticleSystem组件数量

    (4) DrawCall\Overdraw

    4、动画

    (1)压缩动画精度(只影响打包大小)、保留小数点后3位,剔除Scale曲线(影响内存大小)。我们项目实测每个动画文件减小至少35%,包体减小30M,占用内存减小3%左右。图4-2为处理前后动画文件对比。

    图 4-1 图 4-2

    5、材质及Shader

    (1) 清除序列化文件冗余引用

    图 5-1

    (2) 替换Standard Shader

    (3) 添加关键字避免无用计算,剔除无用变体

    6、纹理

    (1)纹理尺寸:尽量控制在512*512以下;

    (2)MipMap选项:开启占用内存多出1/3,图集肯定关闭,其它图片依情况而定;

    (3)压缩格式:直接使用ASTC格式,(OpenGL3.0以上、A8处理器以上支持)。图6-1和6-2列出参考值,具体使用还要以个人项目实测为准。

    图 6-1(图片引用地址 https://zhuanlan.zhihu.com/p/158740249) 图 6-2(图片引用地址 https://zhuanlan.zhihu.com/p/158740249)

    (4)在无特殊要求时,尽量使用POT(Power Of 2)纹理,并且制作时尽量按照实际应用尺寸来制作,避免一些高精度压缩到低精度使用的情况。

    (5)Crunch压缩(有损压缩,轻微损失)

    可以对DXT或ETC纹理进一步压缩,减少包体体积,但Crunch纹理出入GPU时自动解压为DXT/ETC纹理,所以加载时会有解压时间消耗。

    相关文章

      网友评论

          本文标题:Unity资源优化

          本文链接:https://www.haomeiwen.com/subject/fhreiltx.html