unity UGUI 原始碼節解析之Image

2021-08-16 21:55:51 字數 1096 閱讀 8195

ugui原始碼

以設定color為例  如果你呼叫了 sprite.color =  color.red

首先color這個屬性是在父類graphic中的字段,如圖如果你去set顏色的話 會呼叫 setverticesdirty()函式

函式長這樣。

其中呼叫了canvasupdateregistry.registercanvaselementforgraphicrebuild()方法 並且傳入本身

層層呼叫會發現最後呼叫到了這個函式

這個函式也就是把這個介面加入到佇列裡面,佇列什麼時候會呼叫呢

乙個名為performupdate()的函式內呼叫的 可以看到會呼叫這個介面的 rebuild函式也就是graphic的rebuild函式

然後會呼叫到 updategeometry(),最後會呼叫到onpopulatemesh()函式

在這裡完成了 網格的重建以及顏色 uv資訊等更新

performupdate()這個函式什麼時候呼叫的呢?

檢視引用得知 是註冊了乙個事件,那這個時間從官網可以看到 是每次相機重新整理之前會呼叫一次 ,也就是說順序大概是

1. 把要改動的graphic加入到全域性佇列當中

2.然後攝像機每次渲染之前全部呼叫這些graphic的rebuild()函式 最後呼叫到了自身的onpopulatemesh()函式 然後重新整理

Unity UGUI原始碼除錯與修改

unityeditor.ui工程生成editor unityeditor.ui.dll,主要包含各ugui控制項在editor的inspector功能。unityengine.ui工程生成standalone unityengine.ui.dll,主要是ugui在發布包中使用的功能。unityeng...

Unity UGUI原始碼除錯與修改

關於ugui就不過多介紹了,那麼直接進入主題 3.使用文字開啟readme.md檔案,獲取ugui檔案路徑。本人的版本是windows版本,所以路徑如下 data unityextensions unity guisystem 4.關於ugui原始碼聯調 簡單粗暴的方式如下 備份guisystem目...

Fabric 原始碼解析 原始碼目錄解析

這裡對重要的一些目錄進行說明 bccsp 與密碼學 加密 簽名 證書等等 相關的加密服務 將fabric中用到的密碼學相關的函式抽象成了一組介面,便於拓展。bddtests 一種新型的軟體開發模式 行為驅動開 需求 開發 common 一些公共庫 錯誤處理 日誌處理 賬本儲存 策略以及各種工具等等 ...