美文网首页
unity的一些优化

unity的一些优化

作者: 陷阱_5610 | 来源:发表于2020-09-10 11:26 被阅读0次

    1.prefab上少挂组件

    比如,创建人物移动的类,这个类不继承mono,然后用一个人物的组件(统管整个人物的组件)的update触发去触发人物移动的类的update。这样人物移动也可以做相应行为。这样可以减少人物挂载的组件。

    2.少用projector的方式做投影显示。每个projector都会有一个相机,这样会产生很多gc。无法合并gc。用面片 然后用rvocontroller可以让他贴在地面上

    3.getcomponent,GetChild,find等获取性能千万不要在update或循环中做。会产生大量gc

    4.string不能直接用+来拼接,用string.format来实现

    5.一些方法要经常获取就应该统一一个地方,一次性获取。减少后面获取的数量

    6.字典的key不能用枚举,会有gc

    7.显示不出来的shader中的pass(因为在ui上如果不写深度的话一些pass会在ui后面)就不要渲染,可以关闭该pass减少dc

    8.rendertexture能用低质量的就用低质量的,比如用ARGB4444能显示正常的就不用全质量,能降采样的就降采样,因为rt一般比较可能用在摄像机的targetrendertexture里,所以本身的rt越小性能越好。而且如果之渲染纯色的话可以把rt的深度给关了

    9.尽量使用动态加载,多的话可以用异步,减少卡顿

    10.不需要投射阴影或接收阴影的并且场景有关照就要关闭相关设置

    11.把放在片元着色器执行的代码放到定点着色器

    12.开启多线程渲染

    13..同样类型的物品如果只是颜色不一样的话就用一个白色贴图然后改颜色就可以了,这样可以合批。

    14.尽量用对象池,并且对象池的原则是如果对象池没有则创建一个对象,用完放到对象池并隐藏,需要的时候再拿出来。如果需要使用多个则查看当前的特效是否隐藏,隐藏就拿出来用,如果是显示的则再创建一个,然后放到对象池。然后用lru的方式并控制对象池的上限。

    15.shader尽量剔除背面

    内存:控制在300M以下、UGUI堆内存:3M以下

    渲染:同屏面数不超过100K,DrawCall不超过200

    CPU耗时:33ms以下 (1000ms/30 = 33)

    UGUI CPU平均耗时: 5ms 以下、动画模块CPU耗时:3ms以下

    MeshSkin.Update CPU耗时:3ms以下、粒子系统CPU耗时:3ms以下、物理模块:5ms以下

    GC触发率:1K帧/次 以上

    粒子峰值数:400个以下

    透明贴图(粒子特效等)渲染占屏幕面积 <20%

    ShaderMode版本:兼容2.0

    相关文章

      网友评论

          本文标题:unity的一些优化

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