1. 程式人生 > >GameFramework篇:使用原始碼替換GameFramework.dll

GameFramework篇:使用原始碼替換GameFramework.dll

為了方便我們研究Demo和學習框架,我們要把GameFramework.dll替換成原始碼。在此之前,請確保GF和UGF皆為最新版本。

環境:

若當前使用的 Unity 2017.3(不含)以前的版本

將 Game Framework 原始碼目錄拷貝至 Plugins 目錄(若不存在 Plugins 目錄,請自行建立)中即可。

1.開啟專案的UnityGameFramework資料夾,開啟Libraries,把GameFramework相關資源全部刪除

2.回到Unity中,將GameFramework原始碼拖入Assets資料夾下

3.等Unity重新整理好,我們就可以驚喜的發現,有滿屏的報錯

我們發現大都是引用缺失的問題

我們開啟Libraries下面的link.xml檔案,發現有這樣一句話

和我們沒關係,所以不用管

我們再看報錯

發現絕大多數報錯原因都是找不到GF而造成的

順著報錯路徑,我們發現了這個

這個是unity2017.3的新特性:程式集定義檔案,參考:https://blog.csdn.net/zhenghongzhi6/article/details/78874580

於是我們知道了,要讓UGF模組拿到GF需要這個檔案

所以我們在GF裡建立

在UGF的Runtime程式及定義檔案新增GF引用,Apply一下

等Unity編譯完成,我們發現報錯已經大大減少

我們繼續解決問題,發現有Editor模組缺少GF引用

於是給UGF的Editor程式集定義檔案新增GF引用,Apply

OK,此時Console視窗什麼都沒有了,可以運行遊戲了。

我們發現Debug視窗有很多很多輸出,這是由於編輯器模式下是巨集編譯狀態,所以GF原始碼裡面的Debug全部會輸出,如果不想看到這麼多Debug,就順著原始碼把Debug給註釋掉。

接下來我們就可以體驗追蹤原始碼的樂趣了

比如

找到

追蹤ShowEntity

一路追蹤到這裡,此時,如果使用的是程式集,即dll的話,追蹤到此為止,由於我們使用的是原始碼,所以可以進一步檢視

順著IEntityManager介面,查詢引用,找到EntityManager,找到裡面的ShowEntity,箭頭所指即為原始實現方式

至此,ShowEntity函式追蹤完畢,大家可以以此為參考,學習GF這個強大的框架