Unity ParticleSystem的小优化

最近游戏场景希望加入一些ParticleSystem来丰富场景,这样肯定会带来一定的性能开销。一般来说ParticleSystem的优化就是尽量减少粒子数,尽量不使用粒子碰撞等。而今天要说的是,多个ParticleSystem之间的Draw Call问题。

例子:

首先场景中添加3个ParticleSystem如下

Unity ParticleSystem的小优化_第1张图片

运行效果

Unity ParticleSystem的小优化_第2张图片

这里展示了3个ParticleSystem叠加在一起的效果。这种需求会经常碰到。

起初采用的方案:给每个ParticleSystem添加了不同的材质,每个材质对应相应的图片。如图:

Unity ParticleSystem的小优化_第3张图片Unity ParticleSystem的小优化_第4张图片Unity ParticleSystem的小优化_第5张图片

统计一下Draw Call

Unity ParticleSystem的小优化_第6张图片

优化方案:

减少Draw Call, 第一个想到的就是合并到一张大图。

可以使用Texturepacker。打包结果如下:

Unity ParticleSystem的小优化_第7张图片

因为我的Texturepacker的mac版是免费的所以打包出来有水印。。请忽略

然后把3个ParticleSystem使用同一材质,对应纹理改成打包后的图片

Unity ParticleSystem的小优化_第8张图片

重点来了:

ParticleSystem中勾选Texture Sheet Animation->Mode->Sprites,选择对应的Sprite

Unity ParticleSystem的小优化_第9张图片

OK! 运行看一下Draw Call

Unity ParticleSystem的小优化_第10张图片

可以看到Call减少2.



版权声明:本文为博主原创文章,未经博主允许不得转载。

 http://blog.csdn.net/grrr28/article/details/79580078

 

你可能感兴趣的:(Unity)