Unity DC优化技巧

匿名 (未验证) 提交于 2019-12-03 00:18:01

1:粒子大小,如果可以的话,粒子的size应该尽可能地小。因为Unity的粒子系统的shader无论是alpha test还是alpha blending都是一笔不小的开销。同时,对於非常小的粒子,建议粒子纹理去掉alpha通道。大块的特效最好在模型上面做,不好用粒子。

2:大面积使用的粒子,或者模型,尽量使用add模式,因为blend模式会渲染通道,消耗比较大的内存。


3:如果粒子叠加层次比较多,尽量使用中空模型,会大大降低渲染的压力。

如图,如用到大面的环形效果,建议用右边的模型,中空,降低渲染压力。


4shader的使用方面,特效一般情况使用mobile模式下的shader,如有特殊需求,可以用shader forgeshader,并由程序优化至确认可以使用。





5:粒子系统的使用方面,每个发射器发射多少个粒子,最大粒子数就写多少个,因为最大粒子数默认的1000个是粒子池,会占用内存。粒子特效基本不接收光影和产生光影,故光影的效果选项去掉。如下图:


6:大部分特效不要加入灯光,如想表现灯光效果,可以用glow模拟光照效果。

7:特效中需要用的模型资源能合并,尽量在max中合并,因为在unity中,模型只要k了动画就算一个dc,如果模型事先没在max中合并,几个模型就有几个dc,例如翅膀特效。

就可以把模型做好都合并在一起,然后通过shader走uv,这样只会有1个dc


8:特效中用到的模型只使用一个skinned mesh renderer,角色方面也建议如此。

9如需用到骨骼动画,骨骼数量不要超过30。

10:不要使用mesh collider,特效中的mesh都要去掉该组件。



11:持续循环类特效发射周期尽量的大,因为周期如果很小,就会不断的生成发射器,这对cpu也有一定影响。如下图默认是5,调整到99999。




12:粒子系统中,关于透明度与粒子数量的关系,尽量如图一,不要出现图二的情况;



13:特效中如果要k动画,那么animator组件应该位于特效最上层级的下一级。其他所有层级均在动画层级之下。

14:贴图压缩格式:iOS上尽量使用PVRTC,Android上使用ETC

15:图集大小最好不要高于1024,否则游戏安装之后、低端机直接崩溃、原因是手机系统版本低于2.2、超过1000的图集无法读取导致。

16:特效中的mesh

17:unitypackage文件最终大小最好保持在1.2MB以下。贴图为带通道PNG贴图,最大不超过512*512。单个贴图尽量控制64x64,细节比较多,经常用于大面积地方的贴图128x128,序列用于技能的不要超过256x256,用于全屏ui的序列,最大不要超过512x512,原则上不建议用序列,尽量用单个贴图,通过溶解等shader来实现序列效果。

所有贴图大小尺寸为1:1,2的幂次方。

18:特效中用到的模型面数要尽量控制,选择合理的制作方法,避免出现高面数的模型。

19: 新导入的模型都必须去掉这个选项。


20:如果模型不带动画,选择该模式。

21:由于项目是3d项目,所以在特效制作方面,能用3d的手法就不要用很大的序列图。浪费很大资源,如有需要2d动效,可以用2d骨骼软件。输出蒙皮信息结合3d粒子效果。

DC

DC是5个

N个的话 DC会怎么样呢?

Batches 1257....难怪卡死了....

5OrderInLayer2000,2001,2002,2003,2004

OrderInLayer..

......0 0、

Saved by batching了。

大家理解了吗?特效又有新的事情要做了。

PS:关于单个特效也是能优化的。原理是一样的

5份换成了不同的角度。

OrderInLayer重新设置了。不过每个sq_skill_3_ball,sq_skill_3_fire,sq_skill_3_light都是设置成一样的。

- -、

DC的顶峰会随时间在12-16徘徊。

DC的顶峰稳定在8.

文章来源: Unity DC优化技巧
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!