为了方便我们研究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这个强大的框架