ParticleSystem的小优化
最近游戏场景希望加入一些ParticleSystem来丰富场景,这样肯定会带来一定的性能开销。一般来说ParticleSystem的优化就是尽量减少粒子数,尽量不使用粒子碰撞等。而今天要说的是,多个ParticleSystem之间的Draw Call问题。
例子:
首先场景中添加3个ParticleSystem如下
运行效果
这里展示了3个ParticleSystem叠加在一起的效果。这种需求会经常碰到。
起初采用的方案:给每个ParticleSystem添加了不同的材质,每个材质对应相应的图片。如图:
统计一下Draw Call
优化方案:
减少Draw Call, 第一个想到的就是合并到一张大图。
可以使用Texturepacker。打包结果如下:
因为我的Texturepacker的mac版是免费的所以打包出来有水印。。请忽略
然后把3个ParticleSystem使用同一材质,对应纹理改成打包后的图片
重点来了:
ParticleSystem中勾选Texture Sheet Animation->Mode->Sprites,选择对应的Sprite
OK! 运行看一下Draw Call
可以看到Call减少2.
https://blog.csdn.net/qq_14914623