先看看Base脚本长什么样呢?
首先,我们分析代码的时候,可以看到这个BaseComponent很长啊,如果大家一不小心大E了没有闪。。很容易看跑偏啊!!
这里我画了两个框:
一个是红色的,属于这个脚本里面的功能部分把,一个是VersionHelperName,一个是LogHelperName,这个是干啥的呢?我也没看呢,但是看这个名字就可以分析一下,是通过类全名,动态反射创建版本控制 or 日志控制的 Helper帮助类的,属于功能模块,对我们了解这个BaseConpmonent是干啥的,基本没有啥帮助,所以我们就要忽略他!(先了解大概的架构,再看具体的每个功能是咋实现的)
另一个是蓝色的,也就是这个类的类名和它继承的基类,这里就可以分析一下 Componet 是干啥的呢?
点进去看看呗
可以看到,就是一个 abstract的组件抽象类,里面就一个功能,注册这个组件到GameEntry里面,方便管理
那么管理的好处是啥?
肯定是有好处的,可以把他们都放在一个地方(这里是一个链表),比如游戏被顶号了啥的,或者重新登陆,需要重新走一遍登录流程,需要把目前游戏内的所有组件都还原(初始化),这里直接一个循环就完事了,不用每个类都要写一遍
那么 GameEntry 里面是干啥的呢?
这个也没在dll里,估计看一眼就知道了(不细说了),主要就是三点:
1.存储所有的 GameFrameworkComponent
2.给外界提供获取 GameFrameworkComponent 的方法
3.提供Shutdown 游戏框架的接口
回过头来看,BaseComponent里面都干了点啥:
宗旨就是一句话:做了游戏框架的初始化
主要看一个函数就差不多了,就是Awake,如下图所示:
按流程说一遍:
1.初始化 VersionHelper
2.初始化 LogHelper
3.初始化 ZipHelper
4.初始化 JsonHelper
5.Utility这个类做了一些事
6.设置资源加载模式
7.设置 Application.targetFrameRate
8.设置 Time.timeScale
9.设置 Application.runInBackground
10.设置 Screen.sleepTimeout
11.设置 Application.lowMemory 回调
接下来要详细讲解下面的每一步,下次再见!