Unity UGUI原始碼除錯與修改

2021-07-26 05:48:38 字數 1137 閱讀 3053

unityeditor.ui工程生成editor/unityeditor.ui.dll,主要包含各ugui控制項在editor的inspector功能。

unityengine.ui工程生成standalone/unityengine.ui.dll,主要是ugui在發布包中使用的功能。

unityengine.ui-editor工程生成unityengine.ui.dll.主要是ugui在編輯器中使用的功能。

然後編譯生成解決方案,在output資料夾下面得到如下檔案:

然後把這些檔案直接覆蓋unity安裝路徑下\editor\data\unityextensions\unity\guisystem的檔案(ps:建議備份原有資料夾,copy出來乙份,目錄下面的.xml檔案千萬別刪了)。

這時,在ugui原始碼裡面新增的方法屬性和自己加的輸出資訊都能正確呼叫和列印了。

但是如何debug到unityengine.ui.dll內部呢?

可以在unity裡面用vs開啟unity工程**,然後把unityengine.ui工程新增進來,完成之後的效果如下圖:

除錯時效果如下圖:

testbuttonfunc是在button類裡面新加的方法,f11除錯的時候**跟蹤過來了。這樣就可以檢視ugui到底做了什麼事了。不過這裡只有ui的原始碼,無法跟蹤到最底層。

然而我本地並沒裝mono,想想還是算了,畢竟mono也用的不熟。於是我終止了繼續下去。不過後來我一同事大牛來了乙個神來之筆,他直接把ouput生成的內容拖到unity編輯器裡面,然後經過編譯,unity自動生成了.mdb檔案,這樣就不需要自己找什麼工具轉之類的麻煩事了,只是這個mdb到底是不是對的?mono下面是否可以除錯了我都沒有去嘗試了。

開始除錯ugui原始碼吧!

Unity UGUI原始碼除錯與修改

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

unity UGUI 原始碼節解析之Image

ugui原始碼 以設定color為例 如果你呼叫了 sprite.color color.red 首先color這個屬性是在父類graphic中的字段,如圖如果你去set顏色的話 會呼叫 setverticesdirty 函式 函式長這樣。其中呼叫了canvasupdateregistry.regi...

除錯RocketMQ原始碼

拷貝namesrv broker的配置檔案到指定目錄,為了避免直接修改 中的配置檔案。1.1 在f盤建立rocketmq資料夾,建立三個子資料夾conf logs store,我的 中多了dev data的資料夾 1.2 將distribution原始碼conf目錄下的broker.conf log...