• Unity:资源优化和内存优化


    一、模型

    导入模型选项:Import不需要的都不选;网格压缩默认没有,可以根据需要选择压缩层度;不会对网格写入就不勾可读写

    Rig页面:勾选optimize game object,骨骼节点合并了。

    动画页面,没有动画就不勾。有可以选动画压缩(但要注意压缩关键帧会不会掉帧)

      

      

      二、纹理

    不要导出DDS格式的图片,这个格式Unity无法压缩。

    勾选Mipmaps:一种图形渲染技术,如果贴图的基本尺寸是256x256像素的话,它mipmap就会有8个层级。每个层级是上一层级的四分之一的大小,依次层级大小就是:128x128;64x64;32x32;16x16;8x8;4x4;2x2;1x1(一个像素)。

    纹理做成POT格式: NPOT且选择Compress时,Unity会在安卓上会以16b进行压缩、在iOS上则truecolor不压缩。所以,需压缩、或mipmap、或tiled的非打包单张纹理需强制POT。

    压缩选项选择高质量

     三、UI

    DrawCall:任何材质或shader发生改变,就会有一次DrawCall。一个MeshRender对应一个材质,多个MeshRender可以对应同一个Material,多个Material也可以共用一个Shader。

    那么理论上,所有的MeshRender共用一个材质一个shader,发送一次DrawCall即可。

    DrawCall优化:

    • 使用图集Atlas:多个精灵使用同一个材质同一张贴图,那么CPU只需要发送一次DrawCall。保证图集使用率最大化,原则上不超过1024*1024。
    • 使用Unity的静态和动态批处理:勾选static bathcing(批处理:通过合并把顶点坐标组建成一个整体),但是有限制:材质相同、mesh在300面以下。

    九宫格:比较对称的图形,可以做小一点,用九宫格拉伸,而且不同规格不同大小的面板可以复用同一个资源。

    图集:UGUI会自动打包成图集,而NGUI要先打包图集。注意你的图片不能放在Resources文件夹下面,Resources文件夹下的资源将不会被打入图集。

    四、场景打包

    选择LZ4压缩。

    ==================================================================================

    内存优化

    Unity内存分配过程:检查是否有足够的内存单元来存储数据,如果有则分配;如果没有,GC释放内存,释放后有则分配;没有则Unity会扩展堆的大小然后分配。

    Unity两个内存管理池:托管堆、堆栈

    • 堆栈Stack:存储较小的短暂的数据。
    • 托管堆Heap:存储较大的存储时间较长的数据。

    GC:将废弃内存重新回收再次使用的过程。Unity会定时对堆内存进行GC操作。

    GC分配过程:检查堆内存中每个存储变量  =>  检测变量引用是否激活状态  =>  没激活则标记可回收  =>  标记为可回收的变量被移除。

    GC的缺点:执行流程消耗大量时间,导致游戏运行缓慢,帧率低;会使内存碎片化;

    解决GC缺点的办法

    • 减少new的次数
    • 字符串拼接用StringBuilder而不是string
    • new list时规定内存大小
    • 射线检测
    • 使用静态变量
    • 枚举代替常量字符串
    • 不要在频繁使用的函数中进行堆内存分配 

    API优化:

    • transform.name GameObject.tag 会产生内存垃圾,使用CompareTag()替代。
    • yield return null 代替 yield return 0,返回int会导致拆装箱。
  • 相关阅读:
    springMVC 使用WebApplicationContext获取ApplicationContext对象
    idea for mac 最全快捷键整理
    装饰模式 应用场景和实现
    RabbitMQ基础知识详解
    jetty 介绍以及小例子
    业务对象的贫血模型与充血模型
    同构与异构
    Java设计模式之策略模式与状态模式
    C++之内部类(嵌套类)与外部类及友元
    深入理解Java中为什么内部类可以访问外部类的成员
  • 原文地址:https://www.cnblogs.com/tomatokely/p/15916642.html
Copyright © 2020-2023  润新知