Unity 特效优化 特效drawcall合批
同一个粒子特效父物体下有两个特效子节点如下图

编辑切换为居中
attackSp 和 attackSp (1) 材质不同
工程只保留一个特效父节点 此时运行工程

编辑切换为居中
batches为4
再开一个特效

编辑切换为居中
此时batchers 为6
再开一个特效

编辑
此时batchers 为8
发现并没有进行合批操作,将其中一个特效的renderQuene 手动+1

编辑切换为居中

编辑
再次尝试

编辑切换为居中
此时batchers 为4 进行了合批操作
1. 同样的ParticleSystem一定会自动合批。
2. 特效中相同材质的,应该是可以被自动合批的,但是如果是半透的情况下,如果渲染队列不同,会合批失败,需要手动的将渲染队列变更为3000+1,+2..以此类推,只要不同即可。猜测原因可能是,当渲染队列相同是,半透物体的前后无法确认,导致合批失败;当渲染队列不同的时候,底层可能无脑使用了渲染队列来作为渲染顺序,所以就不用自己排序了,所以相同材质的就可以被合批了。
ParticleSystem的order in layer也能手动划分渲染次序使得合批成功,ParticleSystem的order in layer排序优先级比渲染队列高,并且当两个都相同时,会随机决定渲染顺序。