GameFramework篇:使用源码替换GameFramework.dll

为了方便我们研究Demo和学习框架,我们要把GameFramework.dll替换成源码。在此之前,请确保GF和UGF皆为最新版本。

环境:

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

将 Game Framework 源码目录拷贝至 Plugins 目录(若不存在 Plugins 目录,请自行创建)中即可。

1.打开项目的UnityGameFramework文件夹,打开Libraries,把GameFramework相关资源全部删除

GameFramework篇:使用源码替换GameFramework.dll_第1张图片

2.回到Unity中,将GameFramework源码拖入Assets文件夹下

GameFramework篇:使用源码替换GameFramework.dll_第2张图片

3.等Unity刷新好,我们就可以惊喜的发现,有满屏的报错

GameFramework篇:使用源码替换GameFramework.dll_第3张图片

我们发现大都是引用缺失的问题

我们打开Libraries下面的link.xml文件,发现有这样一句话

GameFramework篇:使用源码替换GameFramework.dll_第4张图片

和我们没关系,所以不用管

我们再看报错

GameFramework篇:使用源码替换GameFramework.dll_第5张图片

发现绝大多数报错原因都是找不到GF而造成的

顺着报错路径,我们发现了这个

GameFramework篇:使用源码替换GameFramework.dll_第6张图片

这个是unity2017.3的新特性:程序集定义文件,参考:https://blog.csdn.net/zhenghongzhi6/article/details/78874580

于是我们知道了,要让UGF模块拿到GF需要这个文件

所以我们在GF里创建

GameFramework篇:使用源码替换GameFramework.dll_第7张图片

GameFramework篇:使用源码替换GameFramework.dll_第8张图片

在UGF的Runtime程序及定义文件添加GF引用,Apply一下

GameFramework篇:使用源码替换GameFramework.dll_第9张图片

等Unity编译完成,我们发现报错已经大大减少

我们继续解决问题,发现有Editor模块缺少GF引用

于是给UGF的Editor程序集定义文件添加GF引用,Apply

GameFramework篇:使用源码替换GameFramework.dll_第10张图片

OK,此时Console窗口什么都没有了,可以运行游戏了。

我们发现Debug窗口有很多很多输出,这是由于编辑器模式下是宏编译状态,所以GF源码里面的Debug全部会输出,如果不想看到这么多Debug,就顺着源码把Debug给注释掉。

接下来我们就可以体验追踪源码的乐趣了

比如

找到

追踪ShowEntity

一路追踪到这里,此时,如果使用的是程序集,即dll的话,追踪到此为止,由于我们使用的是源码,所以可以进一步查看

GameFramework篇:使用源码替换GameFramework.dll_第11张图片

顺着IEntityManager接口,查找引用,找到EntityManager,找到里面的ShowEntity,箭头所指即为原始实现方式

GameFramework篇:使用源码替换GameFramework.dll_第12张图片

GameFramework篇:使用源码替换GameFramework.dll_第13张图片

至此,ShowEntity函数追踪完毕,大家可以以此为参考,学习GF这个强大的框架

你可能感兴趣的:(Unity相关,GameFramework)