unity优化

1.内存和包体优化

https://blog.csdn.net/qq_28976599/article/details/126270475

2. 计算加速

1). 开启多线程加速
2).分帧计算(也算加速吧)
3).jobSystem + burst
线程安全的多线程处理结构(jobSystem) + 基于硬件优化的llvm加速编译器,将IL/.NET 二进制代码转换为高度优化的机器码(burst)
burst链接: link
burst用的少的话最好只做简单类型的计算,有很多类型和语法的限制在里面
另外对汇编也不是很熟,对当前机型的支持率也没有对应的概念

4).compute shader

大规模GPGPU算法,类似于CUDA,DirectCompute、OpenGL Compute等(不同渲染框架的不同叫法)
硬件配置:android: opengl es 3.1, ios:metal api

3.代码优化

1) gc相关:Strings,Unity函数调用(GameObject.tag等),Boxing,Coroutines,LINQ与Regular Expressions,定时、定策略的gc,使用增量式垃圾回收
2) 代码执行相关:Update更新代码优化,空update移除,删去多余Debug,Animator.StringToHash等,选择正确的数据结构,缓存GameObjects和组件,对象池策略
3)发热:cpu在30帧时耗时需不超过22ms, 60帧为每帧11毫秒。

4.draw call

  1. ui的draw Call 链接: link
  2. 场景DrawCall
    静态合并:内存翻倍,效率高
    动态合并 打断的条件: 900 vertex attributes/no more than 300 vertices.
    transform的镜像, 不同的材质 , lightMap, 多pass
    可动态合并类型: Mesh Renderers,Trail Renderers, Line Renderers, Particle Systems and Sprite Renderers
    unity draw call batching: link
    3)gpu instance : 低内存,高效率,但不可裁剪
    4)提前合并: 合贴图,分uv
    5)项目中遇到blendshap使用compute skinning的时候会生成300多个DispatchCompute的DC,此时关掉compute skinning会有比较好的优化效果

5.gpu

1.带宽(降纹理大小验证):手机gpu带宽其实很吃紧
2. 像素计算(降分辨率验证): 透明对象的overDraw严重,复杂shader计算。对应场景对象的分级排序管理(zTest)。
3. 顶点相关
4. 附上大佬整理的渲染优化策略图请添加图片描述

6.资源对应的一揽子设置

动画帧的内存,减帧,精度,读写,网格对应的设置,纹理贴图,项目的一堆设置等

7.常用性能工具

unity profiler,unity frameDebugger,本地资源可视化工具, uwa对应工具,render Doc,snapDragon profiler.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值