想做這樣一個優化
因為cmd drawcall太多 materials太多導致 實際上只是貼圖不一樣
想用texture2DArray把他們合起來
texArray這步功能倒是很快就好了
但是從framedebugger看一直沒有合起來 報的error是objects belong to different static batches
unity有一個枚舉會把不能合批的原因列出來 這是其中之一
我就跟進去看。。。。看的我就很lost
代碼里的意思是 smallMeshIndex不一樣不能合並 這個東西其實就是meshID
但我從編輯器里能看到他倆已經是一個Mesh了 頂點數都是合過的
后來意識到 是我做的另一件事情導致他們不能合批的 一測確實如此
unity 靜態合批 功能是好的 前提是mesh必須靜態的 不能運行時對mesh有更改
我為了做texArray的測試 在運行時 拿了mesh 改了uv 加了對texArray的索引 導致不能合批 去掉就變成一個drawcall了
而修正uv 這步 正確的工作流也應該是 編輯時 而不是運行時 所以目測這條路可行 開心
想了一下 我准備寫個編輯器 解決objects have different materials(shader一樣 只有貼圖不一樣 其它ubo不一樣的 用一塊buffer用instance也能解決 這個后期迭代了)
順便其實能把mesh一起合了 不然unity運行時做靜態合批 有這部分新建geometry的memory開銷 好棒
https://i.cnblogs.com/EditPosts.aspx?postid=10557793&update=1
做出來了能出來lightmap沒啥問題 建議location 局部使用