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

GameFramework篇:使用源码替换GameFramework.dll相关推荐

  1. Nginx实战基础篇一 源码包编译安装部署web服务器

    Nginx实战基础篇一 源码包编译安装部署web服务器 版权声明: 本文遵循"署名非商业性使用相同方式共享 2.5 中国大陆"协议 您可以自由复制.发行.展览.表演.放映.广播或通 ...

  2. Nginx基础篇-Nginx 源码编译安装与平滑升级

    Nginx基础篇-Nginx 源码编译安装与平滑升级 Nginx官网下载地址 http://nginx.org/ 1.安装依赖包 yum -y install pcre-devel zlib-deve ...

  3. 【.NET Core项目实战-统一认证平台】第八章 授权篇-IdentityServer4源码分析

    上篇文章我介绍了如何在网关上实现客户端自定义限流功能,基本完成了关于网关的一些自定义扩展需求,后面几篇将介绍基于IdentityServer4(后面简称Ids4)的认证相关知识,在具体介绍ids4实现 ...

  4. 使用Mahout搭建推荐系统之入门篇3-Mahout源码初探

    2019独角兽企业重金招聘Python工程师标准>>> 用意: 希望了解Mahout中数据的存储方式, 它如何避免java object带来的冗余开销.学完知识,要进行些实战 去分析 ...

  5. android告别篇-对于源码我的一些看法

    1.背景         即将结束在sony移动的实习了,在最后的日子有一些伤感有一些感触,对于android这个倾注一年心血的技术有太多话要说.感谢sony移动的各位大牛们给我这个机会,让我彻彻底底 ...

  6. 命令构建gradle项目_【Android 修炼手册】Gradle 篇 -- Gradle 源码分析

    预备知识 理解 gradle 的基本开发 了解 gradle task 和 plugin 使用及开发 了解 android gradle plugin 的使用 看完本文可以达到什么程度 了解 grad ...

  7. 【Android 修炼手册】Gradle 篇 -- Gradle 源码分析

    预备知识 理解 gradle 的基本开发 了解 gradle task 和 plugin 使用及开发 了解 android gradle plugin 的使用 看完本文可以达到什么程度 了解 grad ...

  8. spring-boot-2.0.3不一样系列之源码篇 - springboot源码一,绝对有值得你看的地方

    前言 上篇:spring-boot-2.0.3不一样系列之shiro - 搭建篇,实现了spring-boot与shiro的整合,效果大家也看到了,工程确实集成了shiro的认证与授权功能.如果大家能 ...

  9. 高可用架构篇 MySQL源码编译安装(CentOS-6.6+MySQL-5.6)

    部署环境 操作系统:CentOS-6.6-x86_64-bin-DVD1.iso MySQL版本:mysql-5.6.26.tar.gz 操作用户:root 系统IP:192.168.1.205 主机 ...

最新文章

  1. 一些可能没用过的调试窗口
  2. java 反射深度克隆_C#使用反射(Reflection)实现深复制与浅复制
  3. IIS利用X-Forwarded-For获得来访者的真实IP
  4. Python 数据结构视频教程五
  5. Oracle增加修改删除字段/主键
  6. linux是基于什么的软件模式进行发布的,《Linux操作系统与应用项目教程》习题.doc...
  7. java foreach 跳过本次循环_【Java】对foreach循环的思考
  8. react-router 页面离开 提示数据变更
  9. 文本框为空按钮不可点击
  10. Judge Complex(判断-复杂)
  11. Web-HTML特殊符号的表示
  12. 如何将namedtuples序列化为JSON
  13. 计算机二级vb基础教程,2017计算机二级考试内容VB
  14. Scade Suite开发 ARINC 661 (2)Scade Suite基本操作
  15. sqlite中的 database is locked 问题
  16. 山东教师教育网-山东教育志愿者服务网
  17. python爬虫爬取steam,epic,origin平台游戏数据
  18. 【SQL Server】已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行 问题解决
  19. 雷军:天使投资人不是上帝只是配角
  20. 文件夹如何去除SVN的标记符号

热门文章

  1. Leetcode——153. Find Minimum in Rotated Sorted Array
  2. 大学生书店网页设计制作 简单静态在线书店HTML网页作品 小说书籍网页作业成品 学生期末作业网站模板
  3. 提取谷歌游览器Cookie的五重境界
  4. 《实用VC编程之玩转控件》第6课:ComboBox下拉框控件
  5. GWL30地下水情监测仪
  6. python情人节之玫瑰花与表白方式_情人节 我用Python表白
  7. [问题已处理]-[nginx]-nginx 报错 could not build server_names_hash
  8. 【向StoneDB迁移数据】数据迁移同步工具-Gravity
  9. iOS 开发:彻底理解 iOS 内存管理(MRC 篇)
  10. OpenBmc开发1:openbmc简介