VersionHelper是啥呢?
先看看具体的函数长啥样:
其实跟之前说的VersionHelper差不多
里面就干了几件事:
1.反射得到logHelper的类型
2.创建logHelper
3.设置当前的Version到 GameFramework 里
框架里只做了一个简单的LogHelper,也就是:DefaultLogHelper
里面做的很简单,根据不同的 GameFrameworkLogLevel 和 message,调用对应级别的UnityLog
如图所示:
那么为啥能调用到这个log方法呢?
其实都封装好了,在dll里面,详细解释一下,怎么设计日志的框架
1.首先,定义了 GameFrameworkLogLevel 日志的级别
分为:调试、信息警告、错误、严重错误
问题1:这个有必要吗?平时开发的时候我都写的Debug.Log XXX啊
答案:还是有点必要的,日志大概会分以下几种情况:
a.调试功能用Debug;
b.输出信息(比如连接上了服务器,输出当前的网络情况、延迟信息、服务器链接地址等等)这时候用Info;
c.错误的时候输出Error,比如自己判断为null等等;
d.严重错误的时候输出为Fatal,这代表会导致游戏崩溃的严重bug,框架会检测如果有这种错误的时候,自己会重启游戏或者重启整个框架
2.定义 ILogHelper 抽象出日志输出的方法,等到具体项目自定义实现接口
就比如上面的 DefaultLogHelper:ILogHelper
3.定义 GameFrameworkLog,提供统一的日志输出接口
这里面定义了所有日志输出接口,然后 LogHelper里面的 Log,里面的level 参数根据不同的名称 传不同的参数,这样就传递到了自己实现的接口里面了
如图所示:
还需要做什么呢?
这里只是实现了日志的基础框架,我们需要弄一个 NBLogHelper :ILogHelper
里面需要包括以下功能:
1.写入本地功能【日志持久性】
2.上传服务器功能【日志记录】
3.一键开启/关闭日志功能(其实已经实现了,我们只需控制DEBUG这个编译选项)