美文网首页
UGF之Base游戏启动入口

UGF之Base游戏启动入口

作者: APP4x | 来源:发表于2021-02-15 00:02 被阅读0次

    先看看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 回调

    接下来要详细讲解下面的每一步,下次再见!

    相关文章

      网友评论

          本文标题:UGF之Base游戏启动入口

          本文链接:https://www.haomeiwen.com/subject/kzwuxltx.html