问题
我们游戏项目是类Roguelike游戏,怪物死亡会掉落大量掉落物。掉落物上面会有不同颜色的粒子光柱。掉落物会根据不同掉落物的稀有度开启不同颜色的粒子光柱。 掉落物的Prefab资源是预载入的。每次掉落会生成一个新的掉落物。当遇到大量掉落时,卡顿非常明显。
Debug
经过层层添加Profiler标签Debug发现,性能瓶颈发生在粒子系统的Prewarm。
结论
经过测试发现,只有第一次Play,Prewarm会比较耗时,再次调用Play没有发现明显耗时。 解决方案:将掉落物Prefab放入对象池中,每次使用时Play粒子,回收Stop。这样就可以避免粒子第一次播放Prewarm耗时严重的问题。