Unity 特效優(yōu)化 特效drawcall合批
同一個(gè)粒子特效父物體下有兩個(gè)特效子節(jié)點(diǎn)如下圖

編輯切換為居中
attackSp 和 attackSp (1) 材質(zhì)不同
工程只保留一個(gè)特效父節(jié)點(diǎn) 此時(shí)運(yùn)行工程

編輯切換為居中
batches為4
再開一個(gè)特效

編輯切換為居中
此時(shí)batchers 為6
再開一個(gè)特效

編輯
此時(shí)batchers 為8
發(fā)現(xiàn)并沒有進(jìn)行合批操作,將其中一個(gè)特效的renderQuene 手動(dòng)+1

編輯切換為居中

編輯
再次嘗試

編輯切換為居中
此時(shí)batchers 為4 進(jìn)行了合批操作
1. 同樣的ParticleSystem一定會(huì)自動(dòng)合批。
2. 特效中相同材質(zhì)的,應(yīng)該是可以被自動(dòng)合批的,但是如果是半透的情況下,如果渲染隊(duì)列不同,會(huì)合批失敗,需要手動(dòng)的將渲染隊(duì)列變更為3000+1,+2..以此類推,只要不同即可。猜測原因可能是,當(dāng)渲染隊(duì)列相同是,半透物體的前后無法確認(rèn),導(dǎo)致合批失?。划?dāng)渲染隊(duì)列不同的時(shí)候,底層可能無腦使用了渲染隊(duì)列來作為渲染順序,所以就不用自己排序了,所以相同材質(zhì)的就可以被合批了。
ParticleSystem的order in layer也能手動(dòng)劃分渲染次序使得合批成功,ParticleSystem的order in layer排序優(yōu)先級(jí)比渲染隊(duì)列高,并且當(dāng)兩個(gè)都相同時(shí),會(huì)隨機(jī)決定渲染順序。