UGUI優化之路 VertexHelper

2021-10-21 08:38:07 字數 883 閱讀 7433

準備整理和記錄在工作遇到或平時看到的ugui優化思路。希望自己能整理出一整個系列出來。ugui的原始碼網上都有,不會記錄太多本身原理的東西。重點記錄思路和一些ugui本身的坑。每個優化可能都是比較小的,效果不一定是立竿見影,專案中的優化很多時候就在於積少成多。

版本:unity 2018.4

在製作一些ui效果的時候,我們時常需要去修改他們的頂點資料,以實現一些特殊效果。很多第三方外掛程式的做法通常是通過重寫void modifymesh(vertexhelper vh)函式,對ui元件的頂點資料進行修改。

在修改這些頂點的時候,一般需要通過介面getuivertexstream(liststream)去獲取原來的頂點資料。 而這裡就存在乙個unity的坑。

getuivertexstream會把原來的共享頂點給拆開,按照1個三角面=3個頂點的方式進行輸出到list中。

比如,乙個image,type是sample,繪製乙個sprite只需要4個頂點,2個三角面,其中頂點 0 和 頂點2是屬於共享頂點

當使用getuivertexstream後,就會變成 6個頂點,2個三角面,頂點數量增加了50%:

盡量不用或少用getuivertexstream介面,利用繼承的方式在塞進vertexhelper之前,就把頂點資料修改好了。比如新增乙個腳步someimageeffect指令碼直接繼承image,直接對頂點資料進行修改

UGUI字型優化

字型圖集的重建機制 當乙個新文字出現的時候,會被新增到字型圖集,如果圖集已經沒有空餘的地方,那麼圖集會被重建。圖集會以相同的尺寸重建,打包當前啟用的所有ui text元件中要顯示的文字,如果發現圖集尺寸不夠用的時候,圖集會重新擴充尺寸。後備字型機制 對於字型庫裡沒有的文字,會被放進後備字型圖集裡,後...

UGUI優化不全總結

overdraw和wireframe兩個渲染模式可以檢視填充率 ui也是網格,乙個網格的資料將等待gpu呼叫介面繪製乙個drawcall 半透明從後向前渲染,半透明渲染兩次容易造成填充率問題 盡量不要用setactive方法 text的頂點多 材質和精靈一樣可以合批 framedebug視窗顯示渲染...

UGUI效能優化之Canvas

前言,覺得好的同學別忘了給個好評哦,另外,如果有什麼疑問的,歡迎隨時提問 自從unity問世以來,ui一直都存在比較大的問題,自帶的ongui不能所見即所得,製作過程比較麻煩。於是出現了很多第三方的優秀的ui外掛程式,比如很多專案裡面用到的ngui,或者後來出的fairygui。unity官方在4....